首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芹菜-任务先于子任务成功

芹菜-任务先于子任务成功
EN

Stack Overflow用户
提问于 2017-02-09 21:31:29
回答 1查看 144关注 0票数 0

我不明白为什么我的任务在它的所有子任务都完成之前就被认为已经完成了。

代码语言:javascript
复制
tasks.scan_user.delay(1)

代码:

代码语言:javascript
复制
@task()
def scan_chunk(ids):
    occs = Occurence.objects.filter(product_id__in=ids)
    result = scan_occurences_dummy_pool((x.id,x.url,x.xpath) for x in occs)
    return result

@task()
def scan_user(id): 
    chunks = generate_chunks_from_user(id)
    ch = chain(scan_chunk.si([x.id for x in chunk]) for chunk in chunks)
    return ch()

这是芹菜的输出,正如你所看到的,在所有scan_chunks完成之前,scan_user成功了,这是一个问题,因为我希望在另一个chain中使用scan_user

代码语言:javascript
复制
[2017-02-09 14:27:03,493: INFO/MainProcess] Received task: engineapp.tasks.scan_user[ed358a98-a685-4002-baac-993fdc7b64cf]
[2017-02-09 14:27:05,721: INFO/MainProcess] Received task: engineapp.tasks.scan_chunk[35b74e01-f9fa-471f-8c20-ecbf99a89201]
[2017-02-09 14:27:06,740: INFO/MainProcess] Task engineapp.tasks.scan_user[ed358a98-a685-4002-baac-993fdc7b64cf] succeeded in 3.24300003052s: <AsyncResult: 442f9373-d983-4696-a42a-ba42a8ce7761>
[2017-02-09 14:27:22,178: INFO/MainProcess] Received task: engineapp.tasks.scan_chunk[36a94ad4-3c9e-4f7d-a040-5c2a617a0d8f]
[2017-02-09 14:27:23,204: INFO/MainProcess] Task engineapp.tasks.scan_chunk[35b74e01-f9fa-471f-8c20-ecbf99a89201] succeeded in 17.4779999256s: [
EN

回答 1

Stack Overflow用户

发布于 2017-02-10 20:58:30

ch()只是运行链而不等待结果。如果您想等待,请执行以下操作:

代码语言:javascript
复制
ch = chain(scan_chunk.si([x.id for x in chunk]) for chunk in chunks)()
return ch.get()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42138060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档