全部產品
Search
文件中心

Microservices Engine:通過XXL-JOB調度Dify工作流程

更新時間:Jun 08, 2026

本文將介紹通過任務調度XXL-JOB調度Dify工作流程的功能優勢,並提供具體的接入步驟。

背景資訊

Dify工作流程具有廣泛的業務應用情境,需要用到定時調度,例如:

  • 風險監控:每分鐘掃描風險資料,通過大模型分析潛在風險事件,並及時發出警示。

  • 資料分析:每日拉取金融資料,通過大模型進行資料分析,為投資者提供決策建議。

  • 內容產生:每天自動總結工作內容,產生日報。

重要

Dify原生不支援定時調度功能,可以使用任務調度XXL-JOB作為工作流程的調度和狀態監控。

核心功能

通過XXL-JOB調度Dify工作流程,有以下核心功能和優勢:

  • Dify任務:支援調度自建的公網Dify工作流程,以及阿里雲自建的內網Dify工作流程。

  • 靈活的定時配置:支援cronapifixed_ratefixed_delayone_time時間類型,自訂時區和日曆。

  • 企業級警示監控。

    • 靈活的警示策略:任務層級失敗警示、逾時警示、成功通知。以及執行個體和應用層級的閾值警示。

    • 多渠道訊息通知:簡訊、電話、Webhook、郵件。

  • 企業級可觀測。

    • 調度大盤:可以查看執行個體和應用層級調度情況,包括調度、成功、失敗曲線。

    • 執行歷史:記錄Dify工作流程每次執行的記錄,包括狀態、基本資料、輸入輸出、耗時、Tokens消耗等。

    • 調度事件:記錄Dify工作流程每次調度的事件,包括工作流程相關事件、節點相關事件。

    • 節點追蹤:記錄Dify工作流程一次執行,所有節點的執行情況,支援迴圈、迭代、條件分支的下鑽。

前提條件

接入步驟

1. (可選)Dify服務配置內網API伺服器網域名稱

  1. 登入Container Service管理主控台

  2. 在左側導覽列的集群列表中,單擊叢集名稱進入已部署Dify服務叢集。

  3. 選擇左側導覽列的网络 > 服务,單擊创建

  4. 服务类型選擇Server Load Balancer(LoadBalancer)访问方式選擇私網訪問。參考以下樣本服務關聯填入component組件選擇proxy,填入其他配置項後,單擊确定

    負載平衡類型選擇網路型負載平衡 NLB,資源選擇建立資源,名稱填寫ack-dify-apiserver

    外部流量策略選擇Local。服務關聯標籤還包括app.kubernetes.io/instance=ack-difyapp.kubernetes.io/name=ack-dify。連接埠映射中,名稱填寫http-dify,服務連接埠為80,容器連接埠為dify,協議選擇TCP

  5. 建立完成後,將產生內網API伺服器的地址。

    在Container Service控制台服務列表頁面,查看目標服務對應的外部IP地址(External IP)列,即可擷取該地址(NLB 網域名稱)。

2. 建立Dify工作流程工作

  1. 登入Dify控制台,單擊右上方的工作室,選擇從應用模板建立,建立一個工作流程。

  2. 登入MSE XXL-JOB控制台,並在頂部功能表列選擇地區。

  3. 在左側導覽列,選擇任务调度 > XXL-JOB版

  4. 單擊進入目標執行個體,在左側導覽列的任务管理,單擊创建任务任务类型選擇Dify工作流。更多建立任務資訊,請參見任務管理

    1. Endpoint:Dify工作流程的API伺服器,登入Dify控制台,在訪問 API頁面右上方可擷取API 伺服器。如果使用阿里雲自建Dify服務,推薦參考步驟一,將網域名稱更改為內網地址。

    2. API KEY:Dify工作流程的API 金鑰,不同的工作流程有不同的密鑰。單擊訪問 API頁面右上方API密鑰擷取。

    3. 输入:工作流程的輸入,對應Bodyinputs的值,格式為JSON。

      curl -X POST 'http://8.xxx.247/v1/workflows/run' \
      --header 'Authorization: Bearer {api_key}' \
      --header 'Content-Type: application/json' \
      --data-raw '{
          "inputs": {},
          "response_mode": "streaming",
          "user": "abc-123"
      }'

      inpus值樣本如下:

      {"input_text": "what is your name"}

3. 測實驗證

  1. 單擊已建立任務操作列下的运行一次,手動測試。

  2. 單擊目標任務操作 > 更多下的調度記錄,查看任務執行記錄。

    執行列表頁面展示各條執行記錄的任務執行ID任務ID/名稱所屬應用開始時間/結束時間耗時Tokens狀態等資訊。

  3. 單擊執行任務操作列的详情,即可查看Dify工作流程的基本信息输入输出和節點追蹤

    • 基本資料。

      本次定時調度任務(迭代器測試)的執行詳情:任務ID 為 3,調度類型為定時調度,路由策略為輪詢,資料時間調度時間均為 2025-05-16 14:25:00,開始時間為 2025-05-16 14:25:00,結束時間為 2025-05-16 14:25:25,耗時 25.568 s,Tokens 消耗 2.403K tokens,調度節點為 10.3.1.2。

    • 輸入輸出。

      調度詳情彈窗中,輸入地區的 JSON 內容為 {"input_text": "what is your name"}輸出地區的 JSON 內容為 {"final": "你叫什麼名字呀?"},表明調度任務已將英文輸入成功翻譯為中文輸出。

    • 追蹤,如果是迭代器、迴圈分支,支援節點下鑽。

      展開Iteration迭代節點後,可查看每個迭代項的輸入和輸出詳情,例如輸入為 {"iterator_selector": ["what is your name"]},輸出為 {"output": ["你叫什麼名字?"]},各節點均顯示執行狀態(succeeded)及耗時。

      下鑽後可查看迭代內部各子節點的執行詳情,本樣本中包含 Identify Terms1st TranslationProblems2nd Translation 四個LLM節點,均執行成功,並顯示各節點的token消耗與耗時。