Skip to main content

Interface for TaskQueue

Project description

Support for Python client for Task Queue Rest API using gcloud

Required Dependencies

The following third-party Python modules are required: - gcloud

The easiest way to install the dependencies is to run:

$ pip install -r requirements.txt

Why an interface to the Task Queue API?

The Google Cloud Client Library for Python (gcloud) is great, but it’s missing an interface to the Task Queue Rest API. This is understandable, because the API is experimental and still in alpha, and not fully accesble from outside the App Egine. And gcloud does support Pubsub.

However, Task Queues offer a few functions that aren’t available in Pubsub. And although Push Queues are restricted to use within App Engine, Pull Queues can be used outside the App Engine enviroment.

With Pull Queues a worker can lease tasks for a certain period. During this period, the tasks aren’t available to other workers. This prevents processing a single task multiple times by different workers. This makes Task Queues very useful for background processing, for example in combination with object change notifications, to process objects in a Storage Bucket the moment they are changed or created.

Example

Example:

>>> from gcloud_taskqueue import Taskqueue, Client

For object change notifications, you need to create a service account. To pull tasks created with this account, you need to use it’s credentials:

>>> json_credentials_path = "/path/to/my-service-credential.json"
>>> client = Client.from_service_account_json(json_credentials_path, project="my-project")

Get taskqueue:

>>> tq = Taskqueue(client=client, id="my-taskqueue")

Get tasks in taskqueue:

>>> for task in tq.list_tasks(client=client):
>>>     print("{}\t{}\t{}".format(task.id, task.leaseTimestamp, task.retry_count))

Lease 10 tasks for 60 seconds:

>>> for task in tq.lease(lease_time=60, num_tasks=10, client=client):
>>>     print("{}\t{}\t{}".format(task.id, task.leaseTimestamp, task.retry_count))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcloud_taskqueue-0.0.7.tar.gz (7.5 kB view hashes)

Uploaded Source

Built Distribution

gcloud_taskqueue-0.0.7-py2.py3-none-any.whl (12.8 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page