2015-11-03 55 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