我的任务是由顺序请求(第二个请求需要来自第一个请求的数据,依此类推)到对一个主机有速率限制的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}$任务不会被均匀地分配,而且您可以很容易地看到几乎每次任务都被分配给工人。在
这是解决这类问题的正确配置吗?在
目前没有回答
相关问题 更多 >
编程相关推荐