我有一個用例,它要求我跟蹤回圈內觸發的所有任務佇列是否都被執行。一旦所有的任務佇列都被執行了(全部,不是幾個),只有這樣我才能繼續我的任務的下一個階段。我想在代碼本身中跟蹤這一點,而不是在控制臺中的 Cloud Tasks 頁面中。
在這段代碼中,我以這種方式觸發任務佇列:-
for item in listA:
execute taskqueue1
inside taskqueue1 function:-
for b in listB:
execute taskqueue2
我需要找出 listA 和 listB 回圈中的所有任務佇列是否都已完成。有沒有辦法跟蹤所有觸發的任務佇列的狀態?
所有任務佇列都是推送佇列。
uj5u.com熱心網友回復:
在查看 Python 檔案時,我發現了一個可以幫助您解決案例的鏈接:https : //realpython.com/intro-to-python-threading/
在本文中,您可以找到以下主題:
- 什么是執行緒?
- 如何創建執行緒并等待它們完成
- 如何使用 ThreadPoolExecutor
- 如何避免競爭條件
- 如何使用Python執行緒提供的常用工具
如果您不確定是否要使用Python threading, asyncio or multiprocessing,那么您可以查看使用并發加速 Python 程式:
https://realpython.com/python-concurrency/
這里還有一個 Python Github repo 教程,可能會有所幫助:https : //github.com/realpython/materials/tree/master/intro-to-threading
uj5u.com熱心網友回復:
在 GoogleAPIs.dev 專案中有 list_tasks 函式可以顯示所有排隊的任務,包括當前正在運行的任務:
async list_tasks(請求:可選[Union[google.cloud.tasks_v2.types.cloudtasks.ListTasksRequest, dict]] = None, *, parent: Optional[str] = None, retry: Union[google.api_core.retry.Retry, object] = , timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.tasks_v2.services.cloud_tasks.pagers.ListTasksAsyncPager[source] 列出任務佇列。
出于性能考慮,默認只檢索[BASIC][google.cloud.tasks.v2.Task.View.BASIC]視圖;[response_view][google.cloud.tasks.v2.ListTasksRequest.response_view] 控制回傳的資訊子集。
任務可以按任何順序回傳。順序可能隨時更改。
引數 request (Union[google.cloud.tasks_v2.types.ListTasksRequest, dict]) – 請求物件。使用 [ListTasks][google.cloud.tasks.v2.CloudTasks.ListTasks] 列出任務的請求訊息。
父 (str) –
必需的。佇列名稱。例如:projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID
這對應于請求實體上的父欄位;如果提供了請求,則不應設定此項。
重試 (google.api_core.retry.Retry) – 指定應重試哪些錯誤(如果有)。
timeout (float) -- 此請求的超時時間。
metadata (Sequence[Tuple[str, str]]) – 應作為元資料與請求一起發送的字串。
回傳使用 [ListTasks][google.cloud.tasks.v2.CloudTasks.ListTasks] 列出任務的回應訊息。
迭代此物件將產生結果并自動決議其他頁面。
回傳型別
來源:list_tasks。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372085.html
標籤:Python 谷歌应用引擎 谷歌云平台 任务队列 谷歌云任务
