Celery is an open-source distributed task queue written in Python, a community project by Ask Solem and contributors. A task queue distributes units of work, called tasks, across threads or machines: worker processes watch the queue and run each task outside the program that created it.
Celery communicates through messages. The client adds a task message to a queue, and a message broker, a server that stores and forwards messages, delivers it to a worker. RabbitMQ and Redis are the fully supported brokers, and Amazon SQS and others also work. Results can be stored in Redis, SQL databases, MongoDB, Amazon S3 and other backends. Tasks can run at a given time or on crontab-style periodic schedules, can be combined into workflows such as groups, chains and chunks, and can be limited by rate and run time. Workers retry after a lost connection, and many workers and brokers can run together for high availability. Clients also exist for Node.js, PHP, Go and Rust.
Celery is free software under the BSD license, funded by donations through Open Collective.