我只在下表中创建了在Rabbitmq管理Webui中显示的最后2个队列名称:
表的其余部分有类似哈希的队列,我不知道:
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?.
我可以注意到,当推送消息的数量增加时,这些类似哈希的消息的数量会增加。
答案 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:强>