芹菜工人抓紧任务,而在冷却时间由rateélimi设置

2024-06-01 02:27:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我的任务是由顺序请求(第二个请求需要来自第一个请求的数据,依此类推)到对一个主机有速率限制的API。所以我试着用芹菜来管理几个工人来加快速度。但是对于几个正在运行的工人,任务分配并不均匀。所以,当有空闲的工人时,任务在冷却时交给工人,这大大降低了总体处理速度。在

说明此问题的代码:

from celery import Celery
app = Celery('tasks', backend='mongodb', broker='mongodb://localhost:27017/celery')

app.conf.update(
    CELERY_ACKS_LATE = True,
    CELERYD_CONCURRENCY = 1,
    CELERYD_PREFETCH_MULTIPLIER = 1,
)

@app.task(rate_limit='10/m')
def mytask():
    return 'ok'

如果启动多个worker(带或不带-of air选项)并运行以下代码:

^{pr2}$

任务不会被均匀地分配,而且您可以很容易地看到几乎每次任务都被分配给工人。在

这是解决这类问题的正确配置吗?在


Tags: 数据代码apiapp顺序速率mongodb空闲