分散式定時任務
阿新 • • 發佈:2018-11-01
分散式定時任務:
1. Maven引用
2. 排程控制檯
3. IJobHandler使用說明
4. 控制檯配置
5.1. maven引用
<dependency>
<groupId>com.foriseland.xxl.job</groupId>
<artifactId>xxljob-core</artifactId>
<version>1.9.3-SNAPSHOT</version>
</dependency>
2.排程控制檯
http://192.168.2.1:8091/xxljob/jobinfo
賬號:admin
密碼:********3.IJobHandler使用說明
@JobHandler(value="demoDaMaiJobHandler") @Component public class DemoJobHandler extends IJobHandler { @Override public ReturnT<String> execute(String param) throws Exception { XxlJobLogger.log("XXL-JOB, Hello World."); System.out.println("進入執行器"); for (int i = 0; i < 5; i++) { XxlJobLogger.log("beat at:" + i); TimeUnit.SECONDS.sleep(2); } return SUCCESS; } }
l 首先繼承IJobHandler這個介面,實現ReturnT方法
l 方法內寫自己的任務邏輯。
l 在resources下新建spring資料夾,新建spring-xxl-job.xml檔案。
l spring-xxl-job.xml 檔案內容如下:
<bean id="xxlJobExecutor" class="com.xxl.job.core.executor.XxlJobExecutor" init-method="start" destroy-method="destroy">
<!-- 執行器註冊中心地址[選填],為空則關閉自動註冊 -->
<property name="adminAddresses" value="${overall_public/xxl.job.admin.addresses}" />
<!-- 執行器AppName[選填],為空則關閉自動註冊 -->
<property name="appName" value="${overall_public/xxl.job.executor.appname}" />
<!-- 執行器IP[選填],為空則自動獲取 -->
<property name="ip" value="${overall_public/xxl.job.executor.ip}" />
<!-- 執行器埠號[選填],為空則自動獲取 -->
<property name="port" value="${overall_public/xxl.job.executor.port}" />
<!-- 訪問令牌[選填],非空則進行匹配校驗 -->
<property name="accessToken" value="${overall_public/xxl.job.accessToken}" />
<!-- 執行器日誌路徑[選填],為空則使用預設路徑 -->
<property name="logPath" value="${overall_public/xxl.job.executor.logpath}" />
<!-- 日誌儲存天數[選填],值大於3時生效 -->
<property name="logRetentionDays" value="${overall_public/xxl.job.executor.logretentiondays}" />
</bean>
4.控制檯配置
配置步驟:
1). 配置執行器管理 2). 任務管理 3). 新建任務
l Cron:schedule表示式(如:*/5 * * * * ?)
l 執行模式:選擇BEAN模式
l JobHandler*:選擇程式@JobHandler(value="demoDaMaiJobHandler")的 bean名稱demoDaMaiJobHandler
l 配置完成後,點選執行,可通過日誌進行檢視執行。5.注意事項
所有定時任務專案配置在worker工程下,其次包的命名結構嚴格按照 com.fl名.f名.業務 下,保證spring啟動能被掃描。