Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package taskqueue | 5 package taskqueue |
| 6 | 6 |
| 7 // Interface is the full interface to the Task Queue service. | 7 // Interface is the full interface to the Task Queue service. |
| 8 type Interface interface { | 8 type Interface interface { |
| 9 » Add(task *Task, queueName string) (*Task, error) | 9 » // NewTask simply creates a new Task object with the Path field populate d. |
| 10 » // The path parameter may be blank, if you want to use the default task path | |
| 11 » // ("/_ah/queue/<queuename>"). | |
| 12 » NewTask(path string) *Task | |
| 13 | |
| 14 » Add(task *Task, queueName string) error | |
| 10 Delete(task *Task, queueName string) error | 15 Delete(task *Task, queueName string) error |
| 11 | 16 |
| 12 » AddMulti(tasks []*Task, queueName string) ([]*Task, error) | 17 » AddMulti(tasks []*Task, queueName string) error |
| 13 DeleteMulti(tasks []*Task, queueName string) error | 18 DeleteMulti(tasks []*Task, queueName string) error |
| 14 | 19 |
| 15 » Lease(maxTasks int, queueName string, leaseTime int) ([]*Task, error) | 20 » // NOTE(riannucci): No support for pull taskqueues. We're not planning o n |
| 16 » LeaseByTag(maxTasks int, queueName string, leaseTime int, tag string) ([ ]*Task, error) | 21 » // making pull-queue clients which RUN in appengine (e.g. they'd all be |
| 17 » ModifyLease(task *Task, queueName string, leaseTime int) error | 22 » // external REST consumers). If someone needs this, it will need to be a dded |
| 23 » // here and in RawInterface. The theory is that a good lease API might l ook | |
| 24 » // like: | |
| 25 » // | |
| 26 » // func Lease(queueName, tag string, batchSize int, duration time.Time , cb func(*Task, error<-)) | |
| 27 » // | |
| 28 » // Which blocks and calls cb for each task obtained. Lease would then do all | |
| 29 » // necessary backoff negotiation with the backend. The callback could ex ecute | |
| 30 » // synchronously (stuffing an error into the chan or panicing if it fail s), or | |
| 31 » // asynchronously (dispatching a goroutine which will then populate the error | |
| 32 » // channel if needed). If it operates asynchronously, it has the option of | |
| 33 » // processing multiple work items at a time. | |
| 34 » // | |
| 35 » // Lease would also take care of calling ModifyLease as necessary to ens ure | |
| 36 » // that each call to cb would have 'duration' amount of time to work on the | |
| 37 » // task, as well as releasing as many leased tasks as it can on a failur e. | |
| 18 | 38 |
| 19 Purge(queueName string) error | 39 Purge(queueName string) error |
|
dnj
2015/08/03 22:37:25
Exported methods need comments.
| |
| 20 | 40 |
| 21 » QueueStats(queueNames []string) ([]Statistics, error) | 41 » Stats(queueNames ...string) ([]Statistics, error) |
| 42 | |
| 43 » Raw() RawInterface | |
| 22 } | 44 } |
| OLD | NEW |