Ask Solem 53b5fdf3c5 Lowercase settings and settings cleanup (radical, but backwards compatible) %!s(int64=9) %!d(string=hai) anos
..
README.rst 0afa1efa28 Docs: Replaced all occurences of ``literal`` with `literal` %!s(int64=14) %!d(string=hai) anos
__init__.py 95522e7383 Added new example: examples/celery_http_gateway, a simple http service for applying tasks and querying task results via http. %!s(int64=15) %!d(string=hai) anos
manage.py 6fc67563b5 Fix syntax error %!s(int64=11) %!d(string=hai) anos
settings.py 53b5fdf3c5 Lowercase settings and settings cleanup (radical, but backwards compatible) %!s(int64=9) %!d(string=hai) anos
tasks.py b23fd8c3f6 Use more str.format %!s(int64=12) %!d(string=hai) anos
urls.py e650e3b774 flakes %!s(int64=11) %!d(string=hai) anos

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 there are a few possible
approaches. For instance you can extend the `apply` view to only
accept a whitelist. Another possibility is to 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"}