我想将一个任务的结果传递给另一个任务。我正在使用链
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 :(得分:0)
编辑:意识到我误解了哪个功能
我仍然在加快芹菜的速度,但我不认为你的连锁店正在做你想做的事。具体来说,链条会列出一系列任务;你只提供了1个任务(恰好使用了第2个任务)。我想你想要的是:
som = chain (task_async_get_me_friends.s(userId),parse_friends.s())
这应该调用parse_friends,当返回该结果时,将其传递给task_async_get_me_friends(其中第一个参数作为userId传入,但是#34;等待"为链提供第二个参数(json结果)