Python 芹菜工人一次能做不止一件事吗?
如果我有如下芹菜任务:Python 芹菜工人一次能做不止一件事吗?,python,celery,Python,Celery,如果我有如下芹菜任务: @celery.task(name='tasks.webrequest') def webrequest(*args): try: webrequest = requests.get('{0}'.format(args[0]), auth=(args[1], args[2]), verify=False, timeout=240) except Exception as e: print e webreque
@celery.task(name='tasks.webrequest')
def webrequest(*args):
try:
webrequest = requests.get('{0}'.format(args[0]), auth=(args[1], args[2]), verify=False, timeout=240)
except Exception as e:
print e
webrequest='cant talk to server'
return webrequest
一个芹菜工人只有一个核心,所以只有一个工人线程。有没有办法让员工同时执行两个或多个任务
目前我正在执行如下工作:
celery -A app.celery worker -l DEBUG
当我用并发调用它时(谢谢Ale),它允许我拥有比cpu更多的线程
celery -A app.celery worker -c 30 -l DEBUG
我不是百分之百确定,但我认为那是不可能的。为什么不启动多个工人?请参阅:celery-A proj worker--loglevel=INFO--concurrency=10-n worker1。%hk请记住,简单地将并发性增加到一个较大的值并不会自动提高吞吐量。根据个人经验,在处理大量任务时,将并发度提高到5以上后,吞吐量并没有提高。这是一台非常结实的服务器。所以我确信系统资源不是一个约束。我强烈怀疑由于日志记录导致的磁盘I/O可能是一个瓶颈。但我没有任何证据支持这种说法。