全部產品
Search
文件中心

Microservices Engine:任務調度SchedulerX

更新時間:Mar 13, 2025

本文介紹阿里雲任務調度SchedulerX的操作實踐指南,協助您更好地使用SchedulerX的功能。

實踐指南

使用定時任務的灰階

SchedulerX定時任務支援基於Label的路由策略,您可以在SDK中配置Label標籤,使任務自動調度到某個Label的Worker上來完成任務的灰階功能,詳情可參見如何使用定時任務的灰階

接入Log Service

Log Service可以協助您記錄並分析系統運行過程中的關鍵資訊,有助於排查系統故障、發現潛在問題。分布式任務調度系統SchedulerX 2.0提供Log Service,您無需修改代碼,只需增加一個Log4j或Logback的配置,即可在控制台看到每次任務調度(包括分布式任務)的業務日誌。詳情可參見如何接入Log Service

使單應用支援十萬以上的定時任務

SchedulerX中建立的應用預設最多隻支援1000個任務,而在某些情境下1000個任務遠遠滿足不了業務需求。常見應用情境是每個定時任務調度時間都不一樣,無法通過MapReduce分布式任務解決。為了使單應用能夠支援十萬以上的定時任務,您可以聯絡SchedulerX技術支援人員,開啟應用自動擴容或者使用1.2.1及以上版本用戶端接入SchedulerX,並開啟共用ContainerPool功能。詳情可參見如何使單應用支援十萬以上的定時任務

通過任務優先順序隊列進行應用層級限流

在面對突發峰值任務調度的情境下,系統可能面臨巨大的壓力。例如,當許多天層級的任務被設定在同一時間啟動時,若無有效調控措施,會導致後端業務無法承受這些並發負載,從而引發系統崩潰的風險。在任務調度過程中,您可以通過兩種策略來實現應用層級的限流。分別是應用開啟限流並設定隊列大小,以及配置可搶佔的優先順序隊列。詳情可參見通過任務優先順序隊列進行應用層級限流

建立秒級調度任務

秒級任務適合對即時性要求比較高的業務,例如不停做輪詢的准即時業務,通過記憶體網格和秒級調度,可以讓您不停地處理海量的資料。SchedulerX的秒級任務屬於定時調度類型,適用於簡單Java任務、分布式Java任務和指令碼任務,以及各種執行方式。詳情可參見如何建立秒級調度任務

設定資料時間

例如一個任務在每天00:30運行,但是實際上要處理前一天的資料,即資料時間需要在任務時間的基礎上,向前位移一小時。您可以通過資料時間處理非任務執行時間的資料。詳情可參見如何設定資料時間

重刷資料

如果您的業務發生變更,如資料庫增加一個欄位或者上一個月資料有錯誤,需要把過去一段時間的任務重新執行一遍,可以重刷調度任務資料。詳情可參見如何重刷資料

接入鏈路追蹤

在微服務分布式情境下,全鏈路追蹤功能給業務提供了各個服務點執行情況的可視化快速分析定位能力。在定時任務情境下,業務執行鏈路可能比常規即時業務的執行鏈路更長,接入全鏈路追蹤有助於查詢任務執行耗時、分析執行異常等問題。詳情可參見如何接入鏈路追蹤

指定標籤

任務指定標籤主要應用在灰階、壓測等情境。同一個應用分組下的機器,部分機器可能要用於灰階或者壓測,您可以在SDK 中配置指定標籤來解決。詳情可參見如何指定標籤

將任務調度應用優雅下線

定時任務持續地按固定頻率在應用進程中執行。當應用在發布重啟時,進程需暫時下線。如果直接關閉應用,進行中中的定時任務將被中斷,可能導致資料不完整或其他問題。為避免該情況,SchedulerX實現了定時任務的優雅下線功能,在關閉應用前,需等待當前進行中的任務執行完成後,再安全地關閉應用。詳情可參見如何將任務調度應用優雅下線