一旦工作列於提取佇列中,工作站就可以租用這些工作。工作處理完畢後,工作站必須刪除這些工作。
事前準備
重要事項
- 此方法只適用在標準環境的服務中執行的工作站。
- 在使用提取佇列時,需由您負責按處理量調度工作站的資源。
租用工作
工作排入佇列後,工作站就可透過 taskqueue.Lease
方法,租用一或多個工作。最近使用 taskqueue.Add
新增的工作可能需要稍候片刻,才會透過 taskqueue.Lease
提供。
當您申請租用時,可以指定租用的工作數 (上限為 1,000 項工作) 以及租用期間 (以秒為單位,上限為一週)。租用期間必須夠長,才能確保最慢的工作在租期結束前也有時間完成。您可以使用 taskqueue.ModifyLease
修改工作租用。
租用某個工作後,其他工作站就無法再處理該工作。租約到期前,該工作將無法使用。
下列程式碼範例從佇列 pull-queue
中租用 100 個工作一小時:
使用工作標記進行批次處理
並非所有的工作都相同,您的程式碼可以「標記」工作,然後依照標記來選取工作。標記的用途和篩選器相同。下列程式碼範例示範如何標記工作,然後依照標記來租用工作:
管理輪詢率
會輪詢工作佇列來租用工作的工作站,應能偵測本身嘗試租用工作的速度是否高於佇列所能提供的速度。如果發生這種作業失敗,系統會從 taskqueue.Lease
.
傳回停止作業錯誤。您的程式碼必須處理這些錯誤,停止呼叫 taskqueue.Lease
,稍後再重新嘗試。為了避免出現這種問題,呼叫 taskqueue.Lease
時,請考慮設定較高的遠端程序呼叫 (RPC) 期限。當租用要求傳回空白工作清單時,建議也跟著停止作業。
如果產生出每佇列每秒大於 10 個 LeaseTasks 要求,則只有前 10 個要求會傳回結果。如果要求超過此上限,OK
傳回的結果為零。
在 Google Cloud 控制台中監控工作
如何查看應用程式中所有工作和佇列的相關資訊:
在 Google Cloud 控制台中開啟「Cloud Tasks」頁面,並在「類型」欄中尋找「提取」值。
按一下您需要的佇列名稱,開啟該佇列的詳細資料頁面。該頁面會隨即顯示所選佇列內的全部工作。
刪除工作
工作站完成工作後,即需從佇列中刪除該項工作。如果在工作站完成工作後,仍可在佇列中看見這些工作,則可能是工作站作業失敗,在這種情況下,該工作會交由其他工作站處理。
只要將工作清單 (例如 taskqueue.Lease
傳回的清單) 傳送到 taskqueue.DeleteMulti
,即可將其刪除: