gpt4 book ai didi

python - Celery rate_limit 影响多个任务

转载 作者:行者123 更新时间:2023-11-28 21:25:35 25 4
gpt4 key购买 nike

我有一个使用 rabbitmq 和 celery 的设置,worker 在 4 台机器上运行,每台机器有 4 个实例。我定义了两个任务函数,它们基本上调用相同的后端函数,但其​​中一个名为 process_transaction,没有定义 rate_limit,另一个名为 slow_process_transaction,有 rate_limit ="6/米"。任务进入 rabbitmq 上的不同队列,slownormal

奇怪的是两个任务都强制执行 rate_limit。如果我尝试使用 celery.control.rate_limit 更改 rate_limit,使用 process_transaction 不会更改有效速率,使用 slow_process_transaction name 改变了两者的有效利率。

有什么问题吗?

最佳答案

通过阅读 bucket 源代码,我发现 celery 通过在完成任务后休眠时间增量来实现速率限制,因此如果您在同一 worker 中混合具有不同速率限制的任务,它们会相互影响。

分离 worker 解决了我的问题,但这不是最佳解决方案。

您可以通过在 celeryd 调用中使用节点名称和命名参数来分隔工作人员。例如,您有节点“快”和“慢”,并且您希望它们使用并发度分别为 5 和 1 的单独队列:

celeryd <other opts> -Q:fast fast_queue -c:fast 5 -Q:slow slow_queue -c:slow 1

关于python - Celery rate_limit 影响多个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13995860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com