I asked a similar question in some groups of the developer community on Facebook. This is not just about GoogleAppEngine - I asked in a more general sense to determine the use case between RabbitMQ and Celery. Here are the answers I received, which, in my opinion, are relevant to the topic, and sufficiently explain the difference between the message queue and the task queue.
I asked:
Would it be appropriate to say that "celery is a QueueWrapper / QueueFramework that eliminates the complexity of managing the internal queueManagement / queueAdministration, etc. ??
I understand the language of the book, which says: "Celery is the job queue" and "RabbitMQ is the message broker." However, this seems a bit confusing as the first celery user, because we always knew that RabbitMQ was the โlineupโ.
Please help explain how / what celery does according to RabbitMQ
I received a response from Abu Ashraf Masnun
The task queue and message queue. RabbitMQ is "MQ". It receives messages and delivers messages.
Celery is a task queue. It receives tasks with data associated with them, runs them, and delivers the results.
Remind Selgel for a moment. Tell us about RabbitMQ. What will we usually do? The Django / Flask application will send a queue message. We will have several workers waiting for new messages in certain queues. When a new message arrives, it starts to work and process tasks.
Celery does a great job with this whole process. We no longer need to learn or worry about the details of AMQP or RabbitMQ. We can use Redis or even databases (like MySQL) as a message broker. Celery allows us to define "Tasks" with our working codes. When we need to do something in the background (or even foreground), we can simply call this task (for instant execution) or schedule this task for pending processing. Celery will process the message passing and managing tasks. This would launch employees who would know how to manage your assigned tasks and save results. Thus, you can later request a task result or even a task when necessary.
You can use celery as an alternative to working cron (although I don't really like it)!
Another answer I received from Juan Francisco Calderon Zumba
I understand that celery is a very high level of abstraction for the implementation of producer / consumer events. It takes you to do some painful actions, for example, for RabbitMQ. Celery itself is not the turn. Queues of events stored in the system of your choice celery helps you work with such without having to write producer / consumer from scratch.
In the end, here is what I took home as my final training:
Celery is a Wrapper / Framework queue that eliminates the complexity of having to manage the underlying AMQP mechanisms / architecture with RabbitMQ direct control