區域 ID
REGION_ID
是 Google 根據您在建立應用程式時選取的地區所指派的簡寫代碼。雖然某些區域 ID 可能看起來與常用的國家/地區代碼相似,但此代碼並非對應國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r
。如果是在此日期之前建立的現有應用程式,網址中則可選擇加入地區 ID。
進一步瞭解區域 ID。
queue.yaml
設定檔可用於建立及設定應用程式使用的幾乎所有工作佇列 (push 或 pull)。所有 App Engine 應用程式都會附帶一個名為 default
的自動預先設定發送佇列。雖然您不會自行建立 default
佇列,但可以使用 queue.yaml
檔案新增其他佇列,或變更 default
佇列的設定。
如要設定推送佇列,您可以使用 queue.yaml
或 Cloud Tasks 的佇列管理方法,但不能同時使用兩者。queue.yaml
上傳方法與佇列管理方法混合使用時,可能會產生非預期的結果,因此我們不建議您採取這樣的做法。
queue.yaml
檔案。範例
以下的基礎範例會定義一個已命名佇列,並覆寫預設處理速率:
queue:
- name: my-push-queue
rate: 1/s
以下是較複雜的 queue.yaml
設定範例,示範如何設定工作嘗試次數及修改預設處理速率。
queue:
- name: fooqueue
rate: 1/s
retry_parameters:
task_retry_limit: 7
task_age_limit: 2d
- name: barqueue
rate: 1/s
retry_parameters:
min_backoff_seconds: 10
max_backoff_seconds: 200
max_doublings: 0
- name: bazqueue
rate: 1/s
retry_parameters:
min_backoff_seconds: 10
max_backoff_seconds: 200
max_doublings: 3
語法
queue.yaml
檔案是 YAML 檔案,其根指令為 queue
。其中包含零個或多個已命名的佇列。每項佇列定義皆可指定下列元素:
元素 | 說明 |
---|---|
bucket_size (發送佇列) | (非必要) 工作佇列會使用憑證區塊演算法控制工作執行的速率。每個已命名的佇列都有一個存放憑證的憑證區塊,其上限由 bucket_size 值指定。每次應用程式執行一項工作時,系統就會從區塊中移除一個憑證。您會繼續處理佇列中的工作,直到佇列的區塊中再也沒有憑證為止。App Engine 會依據您為佇列指定的速率,持續在區塊中補充新的憑證。 當佇列中有多個工作且處理速率相當高時,區塊大小會限制佇列的處理速度。區塊大小的最大值為 500,這可讓您享有高速率,能讓工作在排入佇列後立即開始處理,但短時間內若有許多工作排入佇列,也足以限制資源的使用量。 如果您未針對佇列指定 bucket_size,預設值為 5。建議您調高區塊大小值,因為預設值對許多用途而言可能過小。舉例來說,您可以根據處理速率決定值區大小。 如要進一步瞭解這項元素,請參閱 |
max_concurrent_requests (發送佇列) | 選用元素。設定可從指定佇列同步執行的工作數量上限。此元素的值為整數。根據預設,每個佇列的上限是 1000 個工作。根據預設,每個佇列的建議上限是 5000 個工作。請注意,首次建立佇列或是將佇列閒置一段時間後,佇列數量可能會慢慢增加。 限制並行工作的數量可讓您進一步控制佇列的執行速率,避免一次執行過多工作。除此之外,也可以防止資料儲存庫發生爭用狀況,讓其他佇列或線上處理作業都可使用相關資源。 如要進一步瞭解這項元素,請參閱 Cloud Tasks API 參考資料中 |
mode | 選用元素。用於識別佇列模式。這項設定的預設值為 |
name | 必要元素。佇列的名稱。這是您在呼叫 佇列名稱可包含大寫和小寫字母、數字和連字號,長度上限為 100 個字元。 所有應用程式都有名稱為「default」的發送佇列。這個佇列的預設速率為每秒 5 個工作。請注意,這個預設佇列必須先使用或設定一次, Google Cloud console 才會顯示在 Google Cloud console 中。您可以在 |
rate (發送佇列) | 必要元素。這個佇列處理工作的頻率。此值為後接斜線和時間單位的數字,其中單位是 如果數字是 如要進一步瞭解這項元素,請參閱 Cloud Tasks API 參考資料中 |
retry_parameters | 選用元素。設定發送佇列中失敗工作的重試次數。新增這項元素可讓您指定在特定佇列中重試失敗工作的次數上限。您也可以設定重試的時間限制,以及控制每次重試的時間間隔。 重試參數可包含下列子元素:
|
target (發送佇列) | 選用元素。針對執行排入此佇列的工作所用的服務/版本、前端版本或後端,指定這些服務或版本名稱的字串。預設值為空字串。 在建構工作的 HTTP 要求時,系統會在應用程式的網域名稱前面加上這個字串。舉例來說,如果應用程式 ID 為 如果未指定目標,則系統會在工作排入佇列所在的應用程式版本中叫用工作。因此,如果您將預設應用程式版本的工作排入佇列,但不指定佇列上的目標,則會在預設應用程式版本中叫用該工作。請注意,在工作排入佇列的時間與執行工作的時間之間,如果您變更預設應用程式版本,工作將會在新的預設版本中執行。 如果您將服務與分派檔案搭配使用,工作的 HTTP 要求可能會遭到攔截並重新轉送至其他服務。 |
您可為應用程式中的所有佇列指定下列元素:
元素 | 說明 |
---|---|
total_storage_limit | 選用元素。覆寫工作佇列儲存空間預設配額上限 (100 M) 的字串。例如: total_storage_limit: 1.2G queue: - name: fooqueue 這個配額包含在應用程式的總儲存空間配額中 (包括資料儲存庫和 Blobstore 配額)。 如未指定前置字串,系統會將您指定的數字解讀為位元組。支援的前置字串如下:
如果 |
部署佇列設定檔
queue.yaml
檔案應位於根目錄或定義預設服務的目錄中。如要部署佇列設定檔,請執行以下指令:
gcloud app deploy queue.yaml
刪除佇列
如要刪除佇列:
從
queue.yaml
檔案中移除佇列定義。上傳變更後的
queue.yaml
檔案。gcloud app deploy queue.yaml
在 Google Cloud 控制台中刪除佇列,選取佇列並按一下「刪除佇列」:
從 Google Cloud 控制台刪除佇列後,您必須等待 7 天,才能重新建立相同名稱的佇列。