
The most helpful part of Celery is that it can use a plethora of different backends for distributing and coordinating tasks. For example, Celery can use RabbitMQ, Redis, or Amazon SQS as brokers and backends. Through SQLAlchemy, it can also interface with even more storage backends, like PostgreSQL, SQLite, and MySQL. Programming with Celery hides intricate details of those message queues and database engines and feels very pythonic, much like simply calling functions with some added decorators. I also love that it is open source, so if I cannot find an answer in the documentation, I can study the source code to understand how Celery behaves in certain edge cases. Review collected by and hosted on G2.com.
I like most of the Celery experience but would like to see more nontrivial examples in the documentation and tutorials. For instance, it helps a lot to know the backend system you chose to use with Celery. Complex message-brokering scenarios can be solved elegantly without coding if you know how to configure RabbitMQ. By programming Redis directly through Lua scripts, you can gain some performance and, for example, improve Celery's rate-limiting system. I think more tutorials that show how such—and other— scenarios may be solved would significantly improve the Celery documentation. Review collected by and hosted on G2.com.