Hacker News new | ask | show | jobs
by sateesh 2051 days ago
One more reason could be, prioritising the tasks to pick. In celery you can create multiple task queues and prioritise by allocating fewer resource to consume from a lower priority queue (say) and allocate more resources to consume from high priority queue. This configuration is static and is a configuration option. But if you want to dynamically change the priority how you consume tasks from each queue, say by having a scheduling code picking tasks from different queues and handing it over to your application code that would be difficult. I don't think introducing a scheduling layer between celery and the application code is possible unless you modify the celery code.

Also I am not sure how scalable RabbitMQ is, redis as broker scales quite well but you lose durability when you use redis.