Building Google Cloud Platform Solutions
上QQ阅读APP看书,第一时间看更新

Pull queues

In the pull model, a worker service regularly polls the task queue API to discover any pending tasks. As tasks are queued, the worker may pull one or many tasks. This allows workers to process tasks in batches, which is often more efficient for high-volume, lightweight operations than the push model. Like named task queues, pull queues are defined in the queue.yaml. To create a pull queue, simply mark a queue definition with mode: pull:

queue:
- name: pull-example
mode: pull

Whereas push queue workers simply accept requests according to route handlers, a pull queue worker must lease tasks from the queue. Workers specify the duration of the lease, along with the maximum number of tasks to lease for batch operations. If the worker fails to process the tasks within the provided lease duration, the task queue will mark the execution as a failure and perform retries by once again making the failed tasks available for lease.