Ask Solem 94de4a3d6a PEP8ify + pyflakes 15 years ago
..
README.rst a7f76b371b Added README.rst to celery_http_gateway example. 15 years ago
__init__.py 95522e7383 Added new example: examples/celery_http_gateway, a simple http service for applying tasks and querying task results via http. 15 years ago
manage.py 94de4a3d6a PEP8ify + pyflakes 15 years ago
settings.py 94de4a3d6a PEP8ify + pyflakes 15 years ago
urls.py 95522e7383 Added new example: examples/celery_http_gateway, a simple http service for applying tasks and querying task results via http. 15 years ago

README.rst

==============================
Example Celery->HTTP Gateway
==============================

This is an example service exposing the ability to apply tasks and query
statuses/results over HTTP.

Some familiarity with Django is recommended.

``settings.py`` contains the celery settings, you probably want to configure
at least the broker related settings.

To run the service you have to run the following commands::

$ python manage.py syncdb # (if running the database backend)

$ python manage.py runserver


The service is now running at http://localhost:8000


You can apply tasks, with the ``/apply/`` URL::

$ curl http://localhost:8000/apply/celery.ping/
{"ok": "true", "task_id": "e3a95109-afcd-4e54-a341-16c18fddf64b"}

Then you can use the resulting task-id to get the return value::

$ curl http://localhost:8000/e3a95109-afcd-4e54-a341-16c18fddf64b/status/
{"task": {"status": "SUCCESS", "result": "pong", "id": "e3a95109-afcd-4e54-a341-16c18fddf64b"}}


If you don't want to expose all tasks, you can extend the apply view to only
accept an whitelist for example, or just make views for every task you want to
expose, we made on such view for ping in ``views.ping``::

$ curl http://localhost:8000/ping/
{"ok": "true", "task_id": "383c902c-ba07-436b-b0f3-ea09cc22107c"}