2014-03-28 47 views
0

我想將一個任務的結果傳遞給另一個任務。我正在使用鏈條Django芹菜鏈

som = chain (task_async_get_me_friends.s((userId), parse_friends.s()))() 
q = som.get() 
print q 

我的意圖是創建2個任務。首先獲取用戶的朋友,然後將這些朋友通過JSON對象傳遞給parse_friends任務。我正在從task_async_get_me_friends的結果,但再不能得到parse_friends被稱爲

@celery.task 
def task_async_get_me_friends(userId, *args): 
    logger.info('First do something') 
    users_friends = fb_get_friends(userId) 
    # Till here everything is all good, I did see the celery logger. Getting result from fb 
    return {'result':'success', 'data':users_friends} 

@celery.task 
def parse_friends(users_friends,*args,**kwargs): 
    # This log line i cannot see in the celery 
    logger.info('Second do something'+str(users_friends)) 
    # Do something with users_friends 

回答

0

編輯:意識到我有誤解其功能做這

我仍然得到加快速度芹菜,但我不不認爲你的連鎖店正在做你想做的事。具體來說,鏈是一個任務列表;你只提供1個任務(恰好在使用第二個任務)。我想你想要的是:

som = chain (task_async_get_me_friends.s(userId),parse_friends.s()) 

這應該叫parse_friends並返回結果時,傳遞到task_async_get_me_friends(其已通過爲用戶id的第一個參數,但「等待」爲鏈,以提供第二參數(json結果)。

+0

是的,謝謝我讓它工作 –