Push Queues in Python

This page provides an overview of push queues. Push queues run tasks by delivering HTTP requests to App Engine worker services. The requests are delivered at a constant rate. If a task fails, the service will retry the task, sending another request. You must write a handler for every kind of task you use. A single service can have multiple handlers for different kinds of tasks, or you can use different services for different task types.

diagram

The task deadline

When a worker service receives a push task request, it must handle the request and send an HTTP response before a deadline that depends on the scaling type of the worker service.

Automatic scaling services must finish before 10 minutes have elapsed. Manual and basic scaling services can run up to 24 hours.

An HTTP response code between 200–299 indicates success, all other values indicate the task failed. If the task fails to respond within the deadline, or returns an invalid response value, the task will be retried.

Retrying a failed task

If a push task request handler returns an HTTP status code outside the range 200–299, or fails to return any response before the task deadline occurs, App Engine retries the task until it succeeds. The system backs off gradually to avoid flooding your application with too many requests, but schedules retry attempts for failed tasks to recur at a maximum of once per hour.

Working with push queues

When working with push queues, at a minimum, you'll need to do the following things:

Optionally, you can also:

When you use push queues, your application is subject to additional quotas.

What's next

Send feedback about...

App Engine standard environment for Python