single |
What's a Task Queue?
====================
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,
a `PHP client`_, `gocelery`_, gopher-celery_ for Go, and rusty-celery_ for
Rust.
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.
Backers
-------
Thank you to all our backers! 🙏 [`Become a backer`_]
|