One Time
更新時間:
One Time即一次性任務調度,配置完成后任務將在設置的時間點執行一次,執行完成后調度平臺會自動清理任務,您無需在客戶端執行刪除任務的操作。一次性任務調度適用于訂單超時未支付、自動關閉定時日歷提醒等場景。本文介紹如何通過API創建一次性調度任務。
優勢
精準時刻:SchedulerX的一次性任務與延時消息相比,沒有固定延遲多少時間或者在多少天內的時間限制,支持未來任意時間點,使用簡單。
豐富的任務類型:SchedulerX一次性任務適用于所有任務類型,例如Java、HTTP、Shell任務。也適用所有分布式模型,例如單機、廣播、分片、MapReduce等。
可視化運維:SchedulerX的一次性任務和其他任務一樣,具有可視化的界面,方便您觀測和查詢。并且支持在調度時間到達之前修改任務參數,支持失敗自動重試等功能。
通過API創建一次性調度任務
在應用程序的pom.xml文件中添加OpenAPI的SDK依賴。
下面以一個示例代碼說明如何使用SDK調用API,將timeType的參數值設置為5,表示啟用一次性任務調度。
說明關于如何配置環境變量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,請參見配置方案。import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.schedulerx2.model.v20190430.CreateJobRequest; import com.aliyuncs.schedulerx2.model.v20190430.CreateJobResponse; public class CreateJavaJob { public static void main(String[] args) throws Exception { // OpenAPI 的接入點,具體查看上表支持地域列表以及購買機器地域填寫 String regionId = "public"; /** * 1.阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 2.建議不要將AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 * 3.本實例以讀取環境變量方式加載AK/SK信息實現身份驗證,需提前配置環境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET, * 用戶可自行采用其他安全加密方式存儲身份信息。 */ String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); //產品名稱 String productName ="schedulerx2"; //對照支持地域列表選擇Domain填寫 String domain ="schedulerx.aliyuncs.com"; //構建OpenAPI客戶端 DefaultProfile.addEndpoint(regionId, productName, domain); DefaultProfile defaultProfile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret); DefaultAcsClient client = new DefaultAcsClient(defaultProfile); CreateJobRequest request = new CreateJobRequest(); request.setJobType("java"); request.setExecuteMode("standalone"); request.setDescription("test"); request.setName("一次性任務測試"); request.setClassName("com.alibaba.schedulerx.test.processor.HelloWorldJob3"); //timeType=5表示一次性任務 request.setTimeType(5); //yyyy-MM-dd HH:mm:ss request.setTimeExpression("2021-12-15 12:11:00"); request.setNamespace("433d8b23-06e9-408c-aaaa-90d4d1b9a4af"); request.setGroupId("xueren_sub"); // 監控報警 request.setTimeoutEnable(true); request.setTimeoutKillEnable(true); request.setFailEnable(true); request.setTimeout(12300L); // 高級配置,配置失敗自動重試 request.setMaxAttempt(3); request.setAttemptInterval(30); CreateJobResponse response = client.getAcsResponse(request); if (response.getSuccess()) { System.out.println("jobId=" + response.getData().getJobId()); } else { System.out.println(response.getMessage()); } } }
API新建任務后,登錄控制臺查看任務。
登錄分布式任務調度平臺。
在左側導航欄單擊應用管理。
文檔內容是否對您有幫助?