Rabbitmq mgmt上显示未知的队列名称。什么时候使用芹菜

时间:2013-12-07 14:39:30

标签: python rabbitmq celery amqp

我只在下表中创建了在Rabbitmq管理Webui中显示的最后2个队列名称:

enter image description here

表的其余部分有类似哈希的队列,我不知道:

1- Who created them? (I know it is celery, but which process, task,etc.)

2- Why they are created, and what they are created for?.

我可以注意到,当推送消息的数量增加时,这些类似哈希的消息的数量会增加。

1 个答案:

答案 0 :(得分:6)

使用celery时,Rabbitmq用作默认结果后端,也用于存储失败错误 任务(引发例外)。

每个新任务在服务器上创建一个新队列,其中包含数千个任务 代理可能会超载队列,这会影响性能 以消极的方式。

Rabbit中的每个队列都是一个单独的Erlang进程,所以如果你打算这样做的话 同时保留很多结果你可能不得不增加Erlang 进程限制,以及操作系统的最大文件描述符数 允许。

旧结果不会自动清除,所以我们必须告诉 兔子这样做。

以下conf。线条决定了临时生活的时间 队列。默认值为1天

CELERY_AMQP_TASK_RESULT_EXPIRES = Number of seconds

或者,我们可以完全改变后端存储,而不是在Rabbit中。

CELERY_BACKEND = "amqp"

我们也可能会忽略它:

CELERY_IGNORE_RESULT = True.

另外,当忽略结果时,我们也可以保存错误以供以后使用, 这意味着失败任务的另一个队列。

CELERY_STORE_ERRORS_EVEN_IF_IGNORED = True.

我不会将这个问题标记为已回答,等待更好的答案。

<强> Rererences:

  • SO链接
  • 芹菜文档
  • Rabbitmq文档