Skip to main content

Celery API discovery module

Project description

Given the celery instance, it inspects all available celery workers to get the information about the queues they serve and tasks they know about.

Then it creates a chain of attributes allowing to execute any task as queue_name.full_task_name.delay.

With help of this class you can turn your Celery installation to a set of independent modules, each of which “exposes” its own “Celery API”.

To make it more clear, the analogy with a random HTTP-based API available at http://example.com/users/get?email=john@example.com can be like:

  • Celery object (including broker URL, result backend settings, etc) is the analogue of the protocol (http://)

  • Queue name is the analogue of the hostname (example.com)

  • Task name is the analogue of the URL path (/users/get)

  • Task parameters the the analogue the querystring (?email=john@example.com)

Usage example.

If we have a Celery installation with two queues: “download” (knows how to execute “downloader.download_url” task) and “parse” (knows how to execute “parser.parse_html”), we can instantiate API and work with it the following way:

>>> api = celery_api.CeleryApi(celery)
>>> html_page = api.download.downloader.download_html.delay('http://example.com').get()
>>> html_tree = api.parse.parser.parse_html.delay(html_page).get()

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

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

Source Distribution

celery-api-0.1.tar.gz (2.6 kB view hashes)

Uploaded Source

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