匯出 (0) 列印
全部展開

排程器的概念、詞彙和實體階層

更新日期: 2015年5月

下表說明排程器應用程式開發介面公開或使用的主要資源:

 

資源 描述

Cloud service

就概念而言,一個雲端服務代表一個應用程式。一個訂用帳戶可以有多個雲端服務。

Job collection

工作集合包含一個工作群組,以及集合中的工作所共用的維護設定、配額及流速。工作集合是由訂用帳戶擁有者所建立,並根據使用或應用範圍將工作組成群組。工作集合會局限於一個區域。工作集合也可以強制執行配額,以限制集合中所有工作的使用量;配額包含 MaxJobs 和 MaxRecurrence。

Job

工作定義單一循環動作,可以使用簡單或複雜的執行策略。動作可能包含 HTTP 要求或儲存體佇列要求。

Job history

工作記錄代表執行工作的詳細資料。此記錄包含成功與失敗的比較,以及所有回應的詳細資料。

概括而言,排程器和服務管理應用程式開發介面會公開資源的下列作業:

 

Capability 說明和 URI 位址

Cloud service management

建立及修改雲端服務的 GET、PUT 和 DELETE 支援

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}

Job collection management

建立及修改工作集合和內含工作的 GET、PUT 和 DELETE 支援。工作集合是工作的容器,並對應至配額和共用設定。配額的範例 (稍後將進行說明) 包含工作數目上限 # 及最小循環間隔

PUT & DELETE:https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/jobcollections/{jobCollectionName}

GET:https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}

Job management

建立及修改工作的 GET、PUT、POST、PATCH 和 DELETE 支援。所有工作都必須屬於已經存在的工作集合,因此沒有隱含建立

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}/jobs/{jobId}

Job history management

GET 可支援擷取 60 天的工作執行記錄,例如工作的經過時間及工作執行結果。新增查詢字串參數支援,以根據狀態 (state) 和狀態 (status) 進行篩選

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}/jobs/{jobId}/history

工作有兩種類型:HTTP 工作 (包括支援 SSL 的 HTTPS 工作) 和儲存體佇列工作。如果您具有現有工作負載或服務的端點,則 HTTP 工作很理想。儲存體佇列工作可讓您將訊息發佈到儲存體佇列,因此這些工作對使用儲存體佇列的工作負載很理想。

排程的工作基本上包含下列部分:

  1. 工作計時器啟動時所執行的動作

  2. (選擇性) 執行工作的時間

  3. (選擇性) 重複執行工作的時間和頻率

  4. (選擇性) 主要動作失敗時要啟動的動作

排程的工作內部也包含系統提供的資料,例如下次排程執行時間。

以下是詳盡的排程器工作範例。後續各節將提供詳細資料。


{
    "startTime": "2012-08-04T00:00Z",               // optional
    "action": 
    {
        "type": "http",
        "retryPolicy": { "retryType":"none" },
        "request":
        {
            "uri": "http://contoso.com/foo",        // required
            "method": "PUT",                        // required
            "body": "Posting from a timer",         // optional
            "headers":                              // optional

            {
                "Content-Type": "application/json"
            },
        },
       "errorAction": 
       {
           "type": "http",
           "request":
           {
               "uri": "http://contoso.com/notifyError", 
               "method": "POST",                       
           },
       },
    },
    "recurrence":                                   // optional
    {
        "frequency": "week",                        // can be "year" "month" "day" "week" "minute"
        "interval": 1,                              // optional, how often to fire (default to 1)
        "schedule":                                 // optional (advanced scheduling specifics)
        {
            "weekDays": ["monday", "wednesday", "friday"],
            "hours": [10, 22]                      
        },
        "count": 10,                                 // optional (default to recur infinitely)
        "endTime": "2012-11-04",                     // optional (default to recur infinitely)
    },
    "state": "disabled",                           // enabled or disabled
    "status":                                       // controlled by Scheduler service
    {
        "lastExecutionTime": "2007-03-01T13:00:00Z", 
        "nextExecutionTime": "2007-03-01T14:00:00Z ", 
        "executionCount": 3,
         "failureCount": 0,
         "faultedCount": 0
    },
}

如以上排程器工作範例所示,工作定義包含下列部分:

  1. 開始時間 ("startTime")

  2. 動作 ("action"),包含錯誤動作 ("errorAction")

  3. 週期性 ("recurrence")

  4. 狀態 ("state")

  5. 狀態 ("status")

  6. 重試原則 (“retryPolicy”)

以下詳細說明每一部分:

"startTime" 是開始時間,允許呼叫者在網路上以 ISO-8601 格式指定時區時差。

"action" 是每次叫用的動作,並描述服務叫用類型。「動作」是依據所提供的排程執行的項目。排程器目前支援 HTTP 和儲存體佇列動作。

上述範例的動作是 HTTP 動作。以下是儲存體佇列動作的範例:


{
        "type": "storageQueue",
        "queueMessage":
        {
            "storageAccount": "myStorageAccount",  // required
            "queueName": "myqueue",                // required
            "sasToken": "TOKEN",                   // required
            "message":                             // required
                "My message body",
        },
}


"errorAction" 是錯誤處理常式,也就是主要動作失敗時所叫用的動作。您可以使用此變數呼叫錯誤處理端點,或傳送使用者通知。錯誤動作可在主要端點無法使用時 (例如端點的站台損毀時),用來連絡次要端點,也可以用來通知錯誤處理端點。如同主要動作,錯誤動作可以是根據其他動作的簡單或複合邏輯。若要了解如何建立 SAS 權杖,請參閱建立及使用共用存取簽章

循環包含下列部分:

  1. 頻率:分鐘、小時、日、週、月、年的其中之一

  2. 間隔:指定的循環頻率間隔

  3. 指定排程:指定循環的分鐘、小時、週間日、月及月間日

  4. 計數:發生次數的計數

  5. 結束時間:在指定結束時間之後不會執行任何工作

如果工作在其 JSON 定義中指定週期性物件,則為週期性工作。如果指定 count 和 endTime,將優先使用先發生的完成規則。

工作的狀態為下列四個值之一:enabled、disabled、completed 或 faulted。您可以 PUT 或 PATCH 工作,以將工作更新為啟用或停用狀態。如果工作已完成或發生錯誤,這會是無法更新的最終狀態 (不過仍可刪除工作)。以下是 state 屬性範例:


    "state": "disabled", // enabled, disabled, completed, or faulted

已完成和發生錯誤的作業會在 60 天以後刪除。

排程器工作啟動之後,會傳回目前工作狀態的相關資訊。使用者無法設定此物件,此物件是由系統所設定。不過,此物件會包含在工作物件中 (而不是已連結的個別資源),因此使用者可以輕鬆地取得工作的狀態。

工作狀態包含上次執行時間 (如果有的話)、下次排程執行時間 (適用於進行中的工作) 及工作執行計數。

如果排程器工作失敗,則可以指定重試原則來判斷是否已重試動作,以及執行的方式。這是透過 retryType 物件來判斷,如果沒有重試原則,其值會設定為 none,如以上所示。如果有重試原則,則設定為 fixed

若要設定重試原則,可以指定兩個額外設定的值:重試間隔 (retryInterval) 和重試次數 (retryCount)。

使用 retryInterval 物件指定的重試間隔是重試之間的間隔。其預設值為 1 分鐘,最小值為 1 分鐘,而最大值為 18 個月。採用 ISO 8601 格式來定義。相似地,重試次數的值是使用 retryCount 物件來指定,它是嘗試重試的次數。其預設值為 5 而最大值為 20。retryIntervalretryCount 都是選用的 - 如果 retryType 設定為 fixed 且未明確指定值,則會設定為預設值。

另請參閱

顯示:
© 2015 Microsoft