使用 Azure Logic Apps 中的滑動視窗觸發程序排程並執行連續資料的工作

適用於:Azure Logic Apps (使用量)

若要定期執行必須以連續區塊處理資料的工作、程序或作業,您可以使用滑動視窗觸發程序啟動邏輯應用程式工作流程。 您可以設定日期和時間,以及啟動工作流程的時區,以及重複該工作流程的週期。 如果因任何原因而遺漏週期,例如因為中斷或停用工作流程,此觸發程序會處理這些遺漏的週期。 例如,在資料庫與備份儲存體之間同步處理資料時,請使用滑動視窗觸發程序,讓資料同步處理而不會產生間距。 如需內建排程觸發程序和動作的詳細資訊,請參閱使用 Azure Logic Apps 排程和執行週期性自動化工作和工作流程

以下是此觸發程序支援的一些模式:

  • 立即執行,並且每 n 秒、分鐘、小時、天、週或月重複一次。

  • 在特定的日期和時間開始,然後每 n 秒、分鐘、小時、天、週或月執行並重複。 使用此觸發程序,您可以指定過去的開始時間,以執行所有過去的週期。

  • 在執行前將每個週期延遲特定的持續時間。

如需此觸發程序和週期觸發程序之間的差異,或如需排程週期性工作流程的詳細資訊,請參閱使用 Azure Logic Apps 排程和執行循環性自動化工作、程序和工作流程

提示

若要觸發邏輯應用程式,並且在未來只執行一次,請參閱僅執行作業一次

必要條件

新增滑動視窗觸發程序

  1. 登入 Azure 入口網站。 建立空白邏輯應用程式。

  2. 在 Logic Apps 設計工具的搜尋方塊出現後,輸入 sliding window 作為篩選條件。 從觸發程序清單中,選取 [滑動視窗] 觸發程序,作為邏輯應用程式工作流程的第一步。

    Select

  3. 設定重複的間隔和頻率。 在此範例中,將這些屬性設定為每週執行工作流程。

    Set interval and frequency

    屬性 JSON 名稱 必要 類型​ 描述
    間隔 interval Yes 整數 描述工作流程根據 frequency 多久執行一次的正整數。 以下是最小和最大間隔:

    - 月:1-16 個月
    - 週:1-71 週
    - 天:1-500 天
    - 小時:1-12,000 個小時
    - 分鐘:1-72,000 分鐘
    - 秒:1-9,999,999 秒

    例如,如果 interval 是 6,而 frequency 是「月」,則週期為每隔 6 個月。

    頻率 frequency Yes String 重複的時間單位:分鐘小時

    Advanced recurrence options

    如需更多週期選項,請開啟 [新增參數] 清單。 選取之後,您選取的任何選項都會出現在觸發程序上。

    屬性 必要 JSON 名稱 類型 描述
    Delay No 延遲 String 使用 ISO 8601 日期時間規格延遲每個週期的持續時間
    時區 No timeZone String 只有當您有指定開始時間時才適用,因為此觸發程序並不接受 UTC 時差。 選取您要套用的時區。
    開始時間 No startTime String 提供以下格式的開始日期和時間:

    YYYY-MM-DDThh:mm:ss (如果您選取時區)

    -或-

    YYYY-MM-DDThh:mm:ssZ (如果您未選取時區)

    因此,舉例來說,如果您想要的是 2017 年 9 月 18 日下午 2:00,則請指定 "2017-09-18T14:00:00",然後選取一個時區,例如太平洋標準時間。 或是指定 "2017-09-18T14:00:00Z",但不指定時區。

    注意:這個開始時間必須依照 UTC 日期時間格式中的 ISO 8601 日期時間規格,但不含 UTC 時差。 如果您不選取時區,就必須在結尾加上字母 "Z",其中不含任何空格。 這個 "Z" 係指對等的航海時間

    就簡單排程來說,開始時間係指第一次發生的時間,而就進階週期來說,觸發程序會在開始時間一到就立即引發。 我可以使用開始日期和時間的方式有哪些?

  4. 現在,使用其他動作建置剩餘的工作流程。

工作流程定義 - 滑動視窗

在邏輯應用程式基礎工作流程定義 (其中使用 JSON) 中,您可以使用您選擇的選項來檢視滑動視窗觸發程序定義。 若要檢視此定義,請在設計工具工具列上,選擇 [程式碼檢視]。 若要返回設計工具,請選擇設計工具工具列 [設計工具]

此範例示範滑動視窗觸發程序定義在基礎工作流程定義中的樣子,其中每個週期的延遲為五秒,每小時重複一次:

"triggers": {
   "Recurrence": {
      "type": "SlidingWindow",
      "Sliding_Window": {
         "inputs": {
            "delay": "PT5S"
         },
         "recurrence": {
            "frequency": "Hour",
            "interval": 1,
            "startTime": "2019-05-13T14:00:00Z",
            "timeZone": "Pacific Standard Time"
         }
      }
   }
}

下一步