django-orchestra/orchestra/contrib/tasks
Santiago L 9d2d0befc4 Rename `async`--> `run_async`
On Python3.5 async becames a reserved keyword.
2021-03-30 12:51:12 +02:00
..
management/commands Removed unused imports and patterns 2015-05-19 13:27:04 +00:00
README.md Fixes on systemuser backend 2015-10-15 22:31:54 +00:00
__init__.py PEP8 compliance 2015-10-05 13:31:08 +00:00
admin.py Use update wrapper on admin_field decorator 2016-11-21 19:35:17 +00:00
apps.py Fixes on periodic tasks 2015-05-09 18:53:23 +00:00
beat.py Rename `async`--> `run_async` 2021-03-30 12:51:12 +02:00
decorators.py PEP8 compliance 2015-10-05 13:31:08 +00:00
parser.py Added tasks app 2015-05-03 17:44:46 +00:00
schedules.py PEP8 compliance 2015-10-05 13:31:08 +00:00
settings.py Random fixes 2015-07-21 12:23:40 +00:00
tasks.py Random fixes 2015-07-21 12:23:40 +00:00
utils.py Rename `async`--> `run_async` 2021-03-30 12:51:12 +02:00

README.md

This is a wrapper around djcelery and celery @task and @periodic_task decorators. It provides transparent support for switching between executing a task on a plain Python thread or the traditional way of pushing the task on a queue (rabbitmq) and wait for a Celery worker to run it.

A queueless threaded execution has the advantage of 0 moving parts instead of the alternative rabbitmq and celery workers. Less dependencies, less memory footprint, less points of failure, no process keeping, no independent code reloading for the workers.

If your application needs to run thousands or milions of tasks a day, use celery as your backend, if tens or hundreds, then probably the default thread backend will be your best choice.