Re:How we designed Dropbox’s ATF – an async task framework
by sateesh on Thursday November 12, 2020 @10:21AM
(#25070779)
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.
Also I am not sure how scalable RabbitMQ is, redis as broker scales quite well but you lose durability when you use redis.