下載地址:https://gitee.com/xuxueli0323/xxl-job
訪問地址:http://localhost:8080/xxl-job-admin/ 賬號:admin 密碼:123456.
我們部署的是調度器管理平臺,執行器就是我們實際開發的應用系統:比如:會員系統、訂單系統、結算系統等等;執行器管理可以對每一個注冊上來的執行器進行管理(編輯、刪除執行器等)。
我們應用系統都會有自己特定的job任務:比如:會員系統定時拉取一些會員推送模板消息、短信消息;結算系統定時生成結算任務、報表等。任務管理可根據具體的執行器、job任務名稱(JobHandler)、任務描述等進行篩選;可新增任務、啟動任務、執行任務、查詢調度日志,功能比較豐富。
用戶管理可根據角色(普通用戶、管理員)進行管理:新增用戶、刪除用戶。
在調度日志模塊可查詢我們執行任務時的具體情況,可根據具體的執行器、任務名稱、執行狀態進行篩選(成功、失敗、進行中),對于進行中的任務可手動終止;調度備注列可查看調度詳情,比如:我們的任務被調度到哪一臺機器、調度的結果碼、結果信息等等。
運行報表是對調度平臺中執行器數、任務數、調度次數、調度明細(成功、失敗)數據的匯總統計。
看到此處,想必大家心中對xxl-job已經有了一些初步的了解和感受,摩拳擦掌,趁熱打鐵,下面我們新建一個結算系統應用,注冊到調度平臺,并新建一個月結任務,測試下吧。
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.1</version></dependency>
#xxljob config#調度器地址xxl.job.admin.addresses = http://127.0.0.1:8080/xxl-job-admin#鑒權用暫無xxl.job.accessToken =#執行器名稱(就是我們的業務系統) xxl.job.executor.appname = settle-system#執行器地址和ip,demo案例無需填寫xxl.job.executor.address =xxl.job.executor.ip =#執行器端口:默認值:9999xxl.job.executor.port = 9999#日志路徑xxl.job.executor.logpath = D://tmp//log#日志清理時間xxl.job.executor.logretentiondays = 30
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.annotation.Bean;import org.springframework.beans.factory.annotation.Value;import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;import org.springframework.context.annotation.Configuration;@Configurationpublic class XxlJobConfig { private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); @Value("${xxl.job.admin.addresses}") private String adminAddresses; @Value("${xxl.job.accessToken}") private String accessToken; @Value("${xxl.job.executor.appname}") private String appname; @Value("${xxl.job.executor.address}") private String address; @Value("${xxl.job.executor.ip}") private String ip; @Value("${xxl.job.executor.port}") private int port; @Value("${xxl.job.executor.logpath}") private String logPath; @Value("${xxl.job.executor.logretentiondays}") private int logRetentionDays; @Bean public XxlJobSpringExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses); xxlJobSpringExecutor.setAppname(appname); xxlJobSpringExecutor.setAddress(address); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); return xxlJobSpringExecutor; }
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import com.xxl.job.core.handler.annotation.XxlJob;@Componentpublic class MonthlySettlementJobHandler { private static Logger logger = LoggerFactory.getLogger(MonthlySettlementJobHandler.class); // 使用@XxlJob注解,將monthlySettlementJobHandler任務注冊到調度平臺 @XxlJob("monthlySettlementJobHandler") public void monthlySettlementJobHandler(String param) throws InterruptedException { try { logger.info("結算系統-月結任務執行 參數: {}", param); } catch (Exception e) { logger.error("結算系統-月結任務執行 異常 參數: {} 異常信息: ", param, e); } }}
結算系統執行器代碼編寫完畢,啟動成功后,就需要去調度器管理平臺新建我們的執行器、以及我們的job任務了。
新建完畢之后,在列表頁面具體的執行器了,點擊OnLine 機器地址,可查看執行器的ip和端口。
點擊:操作--》執行一次--》根據實際情況填寫job參數--》機器地址無需填寫。
執行后,去結算系統查看日志,會有相應業務日志輸出。
再回到調度平臺,點擊:操作--》查詢日志--》可看到調度時間、調度結果等等。
從調度平臺部署、到業務應用系統(結算系統)對接調度平臺、編寫月結job任務,總體流程大家應該都比較清晰了,是不是覺得還挺簡單的,會不會又有些疑問,對接步驟這么簡潔,其背后的原理究竟是什么?
本文鏈接:http://www.www897cc.com/showinfo-26-17561-0.htmlSpringboot集成分布式任務調度系統XXl-Job(調度器和執行器)
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com