Quelle est la différence entre une file d'attente de messages et une file d'attente de tâches? Pourquoi une file d'attente de tâches nécessiterait-elle un courtier de messages comme RabbitMQ, Redis, Celery ou IronMQ pour fonctionner?


Réponse 1:

divulgation je travaille à

Iron.io | Fournisseur de services d'applications cloud

les opinions sont les miennes.

File d'attente des messages

File d'attente des tâches

Redis

, file d'attente de messages ouverte,

RabbitMQ

, file d'attente de messages auto-hébergée open source,

Amazon SQS

, file d'attente de messages hébergée

IronMQ

, une file d'attente de messages hébergée

Céleri

, file d'attente de tâches auto-hébergée open source,

bien-être

, file d'attente des tâches ouverte,

Ferronnier

, file d'attente de tâches hébergée ET le traitement -

Delayed_job

, file d'attente des tâches ouverte,


Réponse 2:
Sera-t-il approprié de dire que "le céleri est un QueueWrapper / QueueFramework qui élimine la complexité d'avoir à gérer les activités internes de gestion des files d'attente / d'administration des files d'attente, etc."? Je comprends le langage du livre qui dit "Le céleri est une file d'attente de tâches" et "RabbitMQ est un courtier de messages". Cependant, cela semble un peu déroutant en tant que premier utilisateur de céleri, car nous avons toujours su que RabbitMQ était la «file d'attente». S'il vous plaît aider à expliquer comment / ce que le céleri fait en contraste avec rabbitMQ

Abu Ashraf Masnun

https: //www.facebook.com/groups / ...

File d'attente des tâches et file d'attente des messages. RabbitMQ est un "MQ". Il reçoit des messages et délivre des messages. Le céleri est une file d'attente de tâches. Il reçoit les tâches avec leurs données associées, les exécute et fournit les résultats. Oublions le céleri un instant. Parlons de RabbitMQ. Que ferions-nous habituellement? Notre application Django / Flask enverrait un message dans une file d'attente. Nous aurons des travailleurs en cours d'exécution qui attendront de nouveaux messages dans certaines files d'attente. Lorsqu'un nouveau message arrive, il commence à fonctionner et traite les tâches. Le céleri gère parfaitement tout ce processus. Nous n'avons plus besoin d'apprendre ou de nous soucier des détails d'AMQP ou de RabbitMQ. Nous pouvons utiliser Redis ou même une base de données (MySQL par exemple) comme courtier de messages. Le céleri nous permet de définir des «tâches» avec nos codes de travail. Lorsque nous devons faire quelque chose en arrière-plan (ou même au premier plan), nous pouvons simplement appeler cette tâche (pour une exécution instantanée) ou planifier cette tâche pour un traitement différé. Le céleri gérerait le message en passant et en exécutant les tâches. Il lancerait des travailleurs qui sauraient exécuter vos tâches définies et stocker les résultats. Ainsi, vous pouvez ultérieurement interroger le résultat de la tâche ou même l'avancement de la tâche si nécessaire. Vous pouvez également utiliser le céleri comme alternative pour le travail cron (bien que je ne l'aime pas vraiment)!

Juan Francisco Calderon Zumba

https: //www.facebook.com/groups / ...

Ma compréhension est que le céleri n'est qu'un niveau d'abstraction très élevé pour implémenter le producteur / consommateur d'événements. Il supprime plusieurs choses douloureuses que vous devez faire pour travailler par exemple avec rabbitmq. Le céleri lui-même n'est pas la file d'attente. Les files d'attente d'événements sont stockées dans le système de votre choix, le céleri vous aide à travailler avec de tels événements sans avoir à écrire le producteur / consommateur à partir de zéro.
Le céleri est un wrapper / framework de file d'attente qui élimine la complexité d'avoir à gérer les mécanismes / l'architecture AMQP sous-jacents qui accompagnent directement RabbitMQ.

Réponse 3:
Sera-t-il approprié de dire que "le céleri est un QueueWrapper / QueueFramework qui élimine la complexité d'avoir à gérer les activités internes de gestion des files d'attente / d'administration des files d'attente, etc."? Je comprends le langage du livre qui dit "Le céleri est une file d'attente de tâches" et "RabbitMQ est un courtier de messages". Cependant, cela semble un peu déroutant en tant que premier utilisateur de céleri, car nous avons toujours su que RabbitMQ était la «file d'attente». S'il vous plaît aider à expliquer comment / ce que le céleri fait en contraste avec rabbitMQ

Abu Ashraf Masnun

https: //www.facebook.com/groups / ...

File d'attente des tâches et file d'attente des messages. RabbitMQ est un "MQ". Il reçoit des messages et délivre des messages. Le céleri est une file d'attente de tâches. Il reçoit les tâches avec leurs données associées, les exécute et fournit les résultats. Oublions le céleri un instant. Parlons de RabbitMQ. Que ferions-nous habituellement? Notre application Django / Flask enverrait un message dans une file d'attente. Nous aurons des travailleurs en cours d'exécution qui attendront de nouveaux messages dans certaines files d'attente. Lorsqu'un nouveau message arrive, il commence à fonctionner et traite les tâches. Le céleri gère parfaitement tout ce processus. Nous n'avons plus besoin d'apprendre ou de nous soucier des détails d'AMQP ou de RabbitMQ. Nous pouvons utiliser Redis ou même une base de données (MySQL par exemple) comme courtier de messages. Le céleri nous permet de définir des «tâches» avec nos codes de travail. Lorsque nous devons faire quelque chose en arrière-plan (ou même au premier plan), nous pouvons simplement appeler cette tâche (pour une exécution instantanée) ou planifier cette tâche pour un traitement différé. Le céleri gérerait le message en passant et en exécutant les tâches. Il lancerait des travailleurs qui sauraient exécuter vos tâches définies et stocker les résultats. Ainsi, vous pouvez ultérieurement interroger le résultat de la tâche ou même l'avancement de la tâche si nécessaire. Vous pouvez également utiliser le céleri comme alternative pour le travail cron (bien que je ne l'aime pas vraiment)!

Juan Francisco Calderon Zumba

https: //www.facebook.com/groups / ...

Ma compréhension est que le céleri n'est qu'un niveau d'abstraction très élevé pour implémenter le producteur / consommateur d'événements. Il supprime plusieurs choses douloureuses que vous devez faire pour travailler par exemple avec rabbitmq. Le céleri lui-même n'est pas la file d'attente. Les files d'attente d'événements sont stockées dans le système de votre choix, le céleri vous aide à travailler avec de tels événements sans avoir à écrire le producteur / consommateur à partir de zéro.
Le céleri est un wrapper / framework de file d'attente qui élimine la complexité d'avoir à gérer les mécanismes / l'architecture AMQP sous-jacents qui accompagnent directement RabbitMQ.