久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

python - celery工作流的問題

瀏覽:143日期:2022-09-12 10:43:10

問題描述

celery中,我做這樣的處理:一個url經過a, b, c三個的函數,分別獲得返回值,其中任意函數結果均與任意其他函數結果不相關,然后匯總起來,交給之后的流程.這樣,我自然想到并行運行三個函數來加快處理速度.然而由于一開始的設計問題, a函數式被設計成了一次可以處理多個url的形式,而一個一個的處理會非常慢.

@celery.taskdef a(url_list): ’...do something...’ for url in url_list:b.delay(url)

我嘗試這樣控制,然而任務似乎并不能嵌套.那么,如何設計可以比較好的滿足我這種比較奇怪的流程和要求呢?

問題解答

回答1:

應該把a;b;c拆開,寫成3個task, 同時數據庫里要保存一個狀態值,用來表示3個任務的執行狀態,一個任務執行完成后,就修改狀態值,并檢查其他2個任務是否完成,如果都完成了,就匯總任務結果,再處理。

回答2:

@xiaoboost 手工維護狀態可行,但有點費事。

Celery 是可以設計執行流程的,參考文檔:Designing Work-flows題主的需求可以用 chords 搞定,在 celery task 里返回值就行。

BTW: 注意一下 Celery 配置中與返回值相關的幾個選項,比如這個 task_ignore_result

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 义马市| 崇州市| 旅游| 广南县| 原平市| 行唐县| 留坝县| 红安县| 孝义市| 广平县| 黔西县| 靖宇县| 永川市| 鹤峰县| 四川省| 荃湾区| 友谊县| 马山县| 留坝县| 堆龙德庆县| 明溪县| 吴堡县| 成安县| 东城区| 肃宁县| 长兴县| 开化县| 九江县| 黎城县| 通辽市| 太谷县| 巩留县| 平塘县| 梁山县| 奈曼旗| 洱源县| 慈溪市| 彰化县| 铜陵市| 关岭| 泗水县|