在 Python 2 中使用提取佇列

本頁提供 App Engine 標準環境中的提取佇列總覽。在「發送」佇列中,工作會根據佇列的設定傳送至工作站服務。在「提取」佇列中,工作站服務必須向佇列「要求」工作。佇列的回應方式是給予工作站唯一存取權,讓工作站可以處理工作一段指定的時間,這稱為「租用」

應用程式會將工作卸載至工作佇列服務,然後工作站會從工作佇列服務租用工作

有了提取佇列,您也可以使用標記將相關工作分組,然後設定讓您的工作站一次提取具有特定標記的多個工作。這個程序就稱為「批次處理」

如果工作站無法在租用到期之前處理工作,工作站可續約租用,或讓租用到期,這樣其他工作站就可接著租用。當與工作相關聯的工作完成時,工作站必須刪除工作。

使用提取佇列會需要您使用程式碼,以便處理某些在發送佇列中自動化處理的函式:

調度工作站的資源
您的程式碼需要根據工作站的處理量來調整工作站的數目。如果您的程式碼不處理資源調度,而且沒有工作可以處理時,您就會面臨浪費運算資源的風險;如果您要處理的工作太多,也會面臨延遲時間的風險。
刪除工作
您的程式碼也需要在處理完工作之後確實刪除工作。 在發送佇列中,App Engine 會為您刪除工作。如果您的工作站沒有在處理提取佇列工作之後刪除工作,其他工作站會重新處理這項工作,這樣就會浪費運算資源,並面臨工作不是冪等的錯誤風險。

App Engine 標準環境中的提取佇列是透過在名為 queue.yaml 的設定檔中設定屬性所建立。

提取佇列工作流程

處理提取佇列工作的工作站必須在服務內定義,而這項服務是在 App Engine 標準環境中執行。

工作流程如下:

  1. 使用 queue.yaml 建立提取佇列
  2. 建立工作後,將工作加入到佇列。
  3. 所建立的工作站會使用 TaskQueue 租用工作
  4. App Engine 在租用回應中將工作資料傳送至工作站。
  5. 工作站處理工作。如果工作無法在租用到期之前執行,工作站可以修改租用期間。如果租用到期,工作即可開放給其他工作站租用。
  6. 成功處理工作之後,工作站會刪除工作

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Python 2 適用的 App Engine 標準環境