gpt4 book ai didi

python - 在不阻塞其他任务的情况下限制 celery 任务的速率

转载 作者:行者123 更新时间:2023-12-05 07:05:54 26 4
gpt4 key购买 nike

我正在尝试限制一个 celery 任务的速率。这是我的做法:

from project.celery import app

app.control.rate_limit('task_a', '10/m')

它运行良好。但是,有一个陷阱。该工作人员负责的其他任务也被阻止。

比方说,100 个task_a 已被安排。由于它有速率限制,执行所有这些操作需要 10 分钟。在此期间,task_b 也已安排好。在 task_a 完成之前,它不会被执行。

是否可以不阻止 task_b

从外观上看,这就是它的工作原理。我只是在阅读后没有那种印象 the documentation .

其他选项包括:

  • 仅为此任务分离工作人员和队列
  • eta 添加到任务 task_a 中,以便所有任务都安排在夜间运行

这种情况下的最佳做法是什么?

最佳答案

这应该是任务声明的一部分,以便在每个任务的基础上工作。您通过 control 执行此操作的方式可能是它对其他任务产生这种副作用的原因

@task(rate_limit='10/m')
def task_a():
...

阅读更多之后

Note that this is a per worker instance rate limit, and not a global rate limit. To enforce a global rate limit (e.g., for an API with a maximum number of requests per second), you must restrict to a given queue.

您可能必须在单独的队列中执行此操作

关于python - 在不阻塞其他任务的情况下限制 celery 任务的速率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62653315/

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