本頁面提供 App Engine 標準環境中的提取佇列總覽。
在「發送」佇列中,工作會根據佇列的設定傳送至工作站服務。在提取佇列中,工作站服務必須要求佇列提供工作。佇列會回應,允許該 worker 在指定時間內獨占處理工作,這稱為租約。
有了提取佇列,您也可以使用標記將相關工作分組,然後設定讓您的工作站一次提取具有特定標記的多個工作。這個程序就稱為「批次處理」。
如果工作站無法在租用到期之前處理工作,工作站可續約租用,或讓租用到期,這樣其他工作站就可接著租用。當與工作相關聯的工作完成時,工作站必須刪除工作。
使用提取佇列會需要您使用程式碼,以便處理某些在發送佇列中自動化處理的函式:
- 調度工作站的資源
- 您的程式碼需要根據工作站的處理量來調整工作站的數目。如果您的程式碼不處理資源調度,而且沒有工作可以處理時,您就會面臨浪費運算資源的風險;如果您要處理的工作太多,也會面臨延遲時間的風險。
- 刪除工作
- 您的程式碼也需要在處理完工作之後確實刪除工作。在發送佇列中,App Engine 會為您刪除工作。如果您的工作站沒有在處理提取佇列工作之後刪除工作,其他工作站會重新處理這項工作,這樣就會浪費運算資源,並面臨工作不是冪等的錯誤風險。
App Engine 標準環境中的提取佇列是透過在名為
的設定檔中設定屬性所建立。queue.yaml
提取佇列工作流程
處理提取佇列工作的工作站必須在 App Engine 標準環境中執行的服務內進行定義。
工作流程如下:
- 您可以使用
建立提取佇列。queue.yaml
- 在建立工作後,將工作加入到佇列。
- 所建立的工作站會使用 TaskQueue 租用工作。
- App Engine 在租用回應中將工作資料傳送至工作站。
- 工作站處理工作。如果工作無法在租用到期之前執行,工作站可以修改租用期間。如果租用到期,工作即可開放給其他工作站租用。
- 成功處理工作之後,工作站會刪除工作。
後續步驟
- 瞭解如何建立提取佇列。