2015-11-03 56 views
0

我是蟒蛇和芹菜的新手。 我的工作是非常沉重的IO界限,需要做http请求,查询redshift,mysql并写入mysql。 我们正在考虑使用芹菜来连续运行作业,但我认为如果有可能在我的芹菜任务中进行并发处理。基本上,每个任务都可以批量处理一组数据,异步进行调用。 我试图使用龙卷风gen.coroutine,但没有明确的原因与芹菜失败。 gevent或eventlet会好吗?任何人都可以提出一些建议吗? 我真的很感激,谢谢!芹菜任务内的货币

回答

-1

听起来你想创建多个较小的芹菜任务,并使用Chord将它们绑定在一起。

编辑:因为有人似乎并不认为链接到官方文件是不够好(只理由downvote我能想到的),我会粘贴这里的文档代码:

@app.task 
def add(x, y): 
    return x + y 

@app.task 
def tsum(numbers): 
    return sum(numbers) 


>>> from celery import chord 
>>> from tasks import add, tsum 

>>> chord(add.s(i, i) 
...  for i in xrange(100))(tsum.s()).get() 
9900 


>>> callback = tsum.s() 
>>> header = [add.s(i, i) for i in range(100)] 
>>> result = chord(header)(callback) 
>>> result.get() 
9900