Pourquoi utiliser du céleri au lieu de RabbitMQ?

À ma connaissance, Celery est une queue de tâches dissortingbuée, ce qui signifie que la seule chose à faire est d’envoyer des tâches / tâches à d’autres serveurs et de récupérer le résultat. RabbitMQ est une queue de messages et rien de plus. Toutefois, un agent peut simplement écouter le fichier MQ et exécuter la tâche lorsqu’un message est reçu. Cela réalise exactement ce que le céleri offre, alors pourquoi pas du céleri?

Vous avez raison, vous n’avez pas du tout besoin de céleri. Lorsque vous concevez un système dissortingbué, il y a beaucoup d’options et il n’y a pas de bonne façon de faire les choses qui conviennent à toutes les situations.

Beaucoup de personnes trouvent qu’il est plus flexible de disposer de groupes de consommateurs de messages attendant qu’un message apparaisse dans leur queue, effectuant un travail et envoyant un message à la fin du travail.

Celery est un framework qui englobe beaucoup de choses dans un package, mais si vous n’avez pas vraiment besoin du package complet, il est préférable de configurer RabbitMQ et d’implémenter ce dont vous avez besoin sans la complexité. De plus, RabbitMQ peut être utilisé dans de nombreux autres scénarios en plus du scénario de queue que Celery implémente.

Mais si vous choisissez le céleri, réfléchissez à deux fois à RabbitMQ. Le modèle de mise en queue des messages de Celery est simpliste et convient mieux à Redis qu’à RabbitMQ. Le lapin a un riche ensemble d’options que le céleri ignore fondamentalement.

Le céleri fournit fondamentalement une interface agréable pour faire exactement ce que vous avez dit, et traite de toute la configuration pour vous. Oui, vous pourriez le faire à la main, mais vous ne feriez que réécrire le céleri.