【发布时间】:2022-06-10 18:37:50
【问题描述】:
当我使用延迟函数将我的任务推送到队列时,我使用 celery 作为任务队列和 RabbitMQ 作为消息队列。我看到在 rabbit mq 中创建了 3 个队列。我不明白我们需要什么以及为什么需要这 2 个额外的队列。另外,我如何确定我的任务实际上被推入了哪个队列?
开始芹菜:
celery -A myproject worker -l info
[tasks]
. app1.tasks.add
[2022-06-10 06:16:14,132: INFO/MainProcess] Connected to amqp://himanshu:**@IPADDRESS/vhostcheck
[2022-06-10 06:16:14,142: INFO/MainProcess] mingle: searching for neighbors
[2022-06-10 06:16:15,165: INFO/MainProcess] mingle: all alone
[2022-06-10 06:16:15,182: WARNING/MainProcess] /etc/myprojectenv/lib/python3.8/site-packages/celery/fixups/django.py:203: UserWarning: Using settings.DEBUG leads to a memory
leak, never use this setting in production environments!
warnings.warn('''Using settings.DEBUG leads to a memory
[2022-06-10 06:16:15,182: INFO/MainProcess] celery@ubuntu-s-1vcpu-1gb-blr1-01 ready.
[2022-06-10 06:17:38,485: INFO/MainProcess] Task app1.tasks.add[be566921-b320-466c-b406-7a6ed7ab06e7] received
[2022-06-10 06:16:15,182: INFO/MainProcess] celery@ubuntu-s-1vcpu-1gb-blr1-01 ready.
[2022-06-10 06:17:38,485: INFO/MainProcess] Task app1.tasks.add[be566921-b320-466c-b406-7a6ed7ab06e7] received
[2022-06-10 06:19:18,544: INFO/ForkPoolWorker-1] Task app1.tasks.add[be566921-b320-466c-b406-7a6ed7ab06e7] succeeded in 100.05838803993538s: 13
所以每当我运行 celery worker 时,我都会看到这 3 个队列正在生成。
RabbitMQ 管理
这 3 个队列是什么? celery 用它们做什么?
此外,由于队列基本上是持久性数据库,因此是持久性队列,那么为什么当我停止工作人员时它们会被删除。我看到我停止芹菜后这里只有 1 个队列。
【问题讨论】:
标签: rabbitmq celery message-queue system-design rabbitmq-management