Celery在RabbitMQ消息队列中创建3个队列

0pizxfdo  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(283)

我使用celery 作为任务队列,RabbitMQ作为消息队列,当使用延迟函数将我的任务推到队列时。我看到在兔子MQ中创建了3个队列。我不明白我们需要这2个额外的队列是什么,为什么。还有,我如何识别我的任务实际上被推到哪个队列?
celery 开始了:

celery -我的项目工作者-l信息

[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 工人,我看到这3个队列正在生成。

RabbitMQ管理

那三个队列是什么,celery 用它们做什么?
另外,由于队列基本上是持久数据库,因此也是持久队列,所以为什么当我停止我的工作线程时,它们会被删除呢?

kadbb459

kadbb4591#

  • celery队列是为了让你可以发送任务到那个特定的队列。每个订阅了这个队列的Celery worker都可以保留和运行发送给它的任务。
  • .pidbox队列由每个Celery工作人员创建,以支持远程命令的执行。
  • celeryev队列也是由每个Celery工作者创建的,用于监控。例如,每个Celery工作者每隔几秒钟就会广播心跳消息。这些消息将进入celeryev队列。

Celery文档没有给出关于这些队列的任何细节,所以人们不得不在Celery/Kombu源代码中寻找答案。https://github.com/celery/celery/issues/6371#issuecomment-716839203

相关问题