Celery (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Celery logo.png
Stable release
5.0.2 / November 2, 2020; 21 days ago (2020-11-02)
Repository Edit this at Wikidata
Written inPython
Available inPython
TypeMessage-oriented middleware
LicenseBSD License

Celery is an open source asynchronous task queue or job queue which is based on distributed message passing. While it supports scheduling, its focus is on operations in real time.[1]


The execution units, called tasks, are executed concurrently on one or more worker nodes using multiprocessing, eventlet[2] or gevent.[3] Tasks can execute asynchronously (in the background) or synchronously (wait until ready). Celery is used in production systems, for instance Instagram, to process millions of tasks every day.[1]


Celery is written in Python, but the protocol can be implemented in any language. It can also operate with other languages using webhooks.[4] There is also a Ruby-Client called RCelery,[5] a PHP client,[6] a Go client,[7] and a Node.js client.[8]

The recommended message brokers are RabbitMQ or Redis. Additionally, MongoDB, Amazon SQS, CouchDB, IronMQ, and databases (using SQLAlchemy or the Django ORM) are supported in status experimental.[9]

See also[edit]


  1. ^ a b "Celery: Distributed Task Queue". Archived from the original on 2019-06-13. Retrieved 2016-01-14.
  2. ^ eventlet
  3. ^ gevent
  4. ^ "HTTP Callback Tasks (Webhooks) — Celery 3.1.23 documentation". docs.celeryproject.org. Archived from the original on 2016-10-30. Retrieved 2016-08-17.
  5. ^ "leapfrogonline/rcelery". GitHub. Retrieved 2016-08-17.[permanent dead link]
  6. ^ "gjedeer/celery-php". GitHub. Retrieved 2016-08-17.
  7. ^ "gocelery/gocelery". GitHub. Retrieved 2018-08-06.
  8. ^ "mher/node-celery". GitHub. Retrieved 2016-08-17.
  9. ^ "Brokers — Celery 3.1.23 documentation". docs.celeryproject.org. Retrieved 2016-08-17.

External links[edit]