Become a sponsor to Celery
Task queues are used as a mechanism to distribute work across threads or machines.
A task queue's input is a unit of work, called a task, dedicated worker processes then constantly monitor the queue for new work to perform.
Celery communicates via messages, usually using a broker to mediate between clients and workers. To initiate a task a client puts a message on the queue, the broker then delivers the message to a worker.
A Celery system can consist of multiple workers and brokers, giving way to high availability and horizontal scaling.
Celery is written in Python, but the protocol can be implemented in any language. In addition to Python, there's node-celery for Node.js and a PHP client.
Language interoperability can also be achieved by using webhooks in such a way that the client enqueues an URL to be requested by a worker.
Meet the team
-
Tomer Nosrati NusnusActive Maintainer
-
Asif Saif Uddin auvipyPragmatic Software Developer. Python, Rust, Django, FastAPI, Cloud, Ray & React. Core team of Celery, oAuthlib, PyJWT, SockJS & Django REST
Featured work
-
celery/celery
Distributed Task Queue (development branch)
Python 25,076 -
celery/kombu
Messaging library for Python.
Python 2,909 -
celery/billiard
Multiprocessing Pool Extensions
Python 419 -
celery/pytest-celery
Official pytest plugin for Celery.
Python 56