芹菜任务中的货币

时间:2015-11-03 17:15:07

标签: python-2.7 concurrency celery celery-task

我对python和芹菜很新。 我的工作是非常沉重的IO有限,需要做http请求,查询redshift,mysql和写入mysql。 我们正在考虑使用芹菜来连续运行工作,但我想如果可以在我的芹菜任务中做并发。基本上它就像每个任务可以批处理一组数据,异步调用。 我试图使用龙卷风gen.coroutine,但没有明确的理由与芹菜失败。 gevent还是eventlet会好吗?有人可以请一些建议吗? 我真的很感激,谢谢!

1 个答案:

答案 0 :(得分:-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