python - celery工作流的问题
PHPz
PHPz 2017-04-18 10:22:16
0
2
761

celery中,我做这样的处理:
一个url经过a, b, c三个的函数,分别获得返回值,其中任意函数结果均与任意其他函数结果不相关,然后汇总起来,交给之后的流程.这样,我自然想到并行运行三个函数来加快处理速度.
然而由于一开始的设计问题, a函数式被设计成了一次可以处理多个url的形式,而一个一个的处理会非常慢.

@celery.task
def a(url_list):
    '...do something...'
    for url in url_list:
        b.delay(url)

我尝试这样控制,然而任务似乎并不能嵌套.
那么,如何设计可以比较好的满足我这种比较奇怪的流程和要求呢?

PHPz
PHPz

学习是最好的投资!

모든 응답(2)
伊谢尔伦

A; b; c는 3개의 작업으로 분리되어 작성되어야 하며, 동시에 3개의 작업 실행이 완료된 후 상태 값을 데이터베이스에 저장해야 합니다. 상태 값을 수정하여 확인해야 하며, 나머지 두 작업이 모두 완료되었으면 작업 결과를 요약한 후 처리합니다.

Ty80

@xiaoboost 상태를 수동으로 유지 관리하는 것이 가능하지만 약간의 시간이 소요됩니다.

셀러리는 실행 프로세스를 설계할 수 있습니다. 문서: 작업 흐름 설계를 참조하세요
주제의 요구 사항은 코드로 해결될 수 있으며 값은 셀러리 작업에서 반환될 수 있습니다.

현재: task_ignore_result와 같은 Celery 구성의 반환 값과 관련된 여러 옵션에 주의하세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿