Java?Elastic-Job分布式定時任務(wù)使用方法介紹
1 事件追蹤
Elastic-Job-Lite在配置中提供了JobEventConfiguration,支持?jǐn)?shù)據(jù)庫方式配置,會在數(shù)據(jù)庫中自動創(chuàng)建JOB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG兩張表以及若干索引,來記錄作業(yè)的相關(guān)信息。
1.1 修改Elastic-Job配置類
在ElasticJobConfig中修改:
@Autowired
private DataSource dataSource;
/**
* 任務(wù)啟動
*
* @return
*/
@Bean(initMethod = "init")
public SpringJobScheduler initSimpleElasticJob() {
SimpleJob job1 = fileBackupJobDb;
// // 定義Lite作業(yè)根配置
JobEventConfiguration jobEventConfig = new JobEventRdbConfiguration(dataSource);// 增加任務(wù)事件追蹤配置
SpringJobScheduler jobScheduler = new SpringJobScheduler(job1,registryCenter,
createJobConfiguration(job1.getClass(),"0/10 * * * * ?",4,"0=text,1=image,2=radio,3=vedio"),
jobEventConfig);
return jobScheduler;
}1.2 啟動項目
啟動后會發(fā)現(xiàn)在elastic_job_demo數(shù)據(jù)庫中新增以下兩個表。
job_execution_log:


job_status_trace_log:


JOB_EXECUTION_LOG記錄每次作業(yè)的執(zhí)行歷史。分為兩個步驟:
1. 作業(yè)開始執(zhí)行時向數(shù)據(jù)庫插入數(shù)據(jù),除failure_cause和complete_time外的其他字段均不為空。
2. 作業(yè)完成執(zhí)行時向數(shù)據(jù)庫更新數(shù)據(jù),更新is_success, complete_time和failure_cause(如果作業(yè)執(zhí)行失敗)。
JOB_STATUS_TRACE_LOG記錄作業(yè)狀態(tài)變更痕跡表??赏ㄟ^每次作業(yè)運行的task_id查詢作業(yè)狀態(tài)變化的生命周期和運行軌跡。
2 運維
elastic-job中提供了一個elastic-job-lite-console控制臺
設(shè)計理念
- 本控制臺和Elastic Job并無直接關(guān)系,是通過讀取Elastic Job的注冊中心數(shù)據(jù)展現(xiàn)作業(yè)狀態(tài),或更新注冊中心數(shù)據(jù)修改全局配置。
- 控制臺只能控制作業(yè)本身是否運行,但不能控制作業(yè)進程的啟停,因為控制臺和作業(yè)本身服務(wù)器是完全分布式的,控制臺并不能控制作業(yè)服務(wù)器。
主要功能
- 查看作業(yè)以及服務(wù)器狀態(tài)
- 快捷的修改以及刪除作業(yè)設(shè)置
- 啟用和禁用作業(yè)
- 跨注冊中心查看作業(yè)
- 查看作業(yè)運行軌跡和運行狀態(tài)
不支持項
1. 添加作業(yè)。因為作業(yè)都是在首次運行時自動添加,使用控制臺添加作業(yè)并無必要。直接在作業(yè)服務(wù)器啟動包含Elastic Job的作業(yè)進程即可
具體搭建步驟如下:
2.1 搭建
下載地址:傳送門
解壓縮 elastic-job-lite-console-${version}.tar.gz 。
進入 bin目錄 并執(zhí)行:
bin\start.sh
打開瀏覽器訪問 http://localhost:8899/ 即可訪問控制臺。8899為默認(rèn)端口號,可通過啟動腳本輸入-p自定義端口號。
elastic-job-lite-console-${version}.tar.gz 也可通過 elastic-job 源碼用 mvn install編譯獲取。
輸入用戶名 root 密碼 root 即可打開主界面如下圖

提供兩種賬戶,管理員及訪客,管理員擁有全部操作權(quán)限,訪客僅擁有察看權(quán)限。默認(rèn)管理員用戶名和密碼是root/root,訪客用戶名和密碼是guest/guest,可通過conf\auth.properties修改管理員及訪客用戶名及密碼。
2.2 配置及使用
1 配置注冊中心地址
先啟動zookeeper 然后在注冊中心配置界面點添加

點擊提交后,然后點連接(zookeeper必須處于啟動狀態(tài))

連接成功后,在作業(yè)維度下可以顯示該命名空間下作業(yè)名稱、分片數(shù)量及該作業(yè)的cron表達(dá)式等信息在服務(wù)器維度可以查看服務(wù)器ip、當(dāng)前運行的實例數(shù)、作業(yè)總數(shù)等信息。


2 配置事件追蹤數(shù)據(jù)源
在事件追蹤數(shù)據(jù)源配置頁面點添加按鈕,輸入相關(guān)信息


提交后點擊連接即可在作業(yè)歷史下查看作業(yè)歷史記錄


3 dump命令
使用Elastic-Job-Lite過程中可能會碰到一些問題,導(dǎo)致作業(yè)運行不穩(wěn)定。由于無法在生產(chǎn)環(huán)境調(diào)試,通過dump命令可以把作業(yè)內(nèi)部相關(guān)信息dump出來,方便開發(fā)者debug分析。
(1)開啟dump監(jiān)控端口,并運行程序
修改中ElasticJobConfifig中的createJobConfifiguration方法里JobRootConfifiguration的配置,開啟dump監(jiān)控端口:
JobRootConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig) .monitorPort(9888)//設(shè)置dump端口 .build();
(2)windows中安裝netcat(若操作系統(tǒng)中已經(jīng)有nc命令,此步驟可略過)
tools文件夾內(nèi)包含netcat-win32-1.12.zip,解壓即可。
(3)執(zhí)行dump命令
打開命令行工具,進入netcat-win32-1.12.zip的解壓目錄,執(zhí)行以下命令:
echo dump| nc 127.0.0.1 9888 > job_debug_dump.txt
會在當(dāng)前目錄生成job_debug_dump.txt文件,打開job_debug_dump.txt后看到:
/com.example.demo.job.FileBackupJobDb/sharding |
/com.example.demo.job.FileBackupJobDb/sharding/3 |
/com.example.demo.job.FileBackupJobDb/sharding/3/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/2 |
/com.example.demo.job.FileBackupJobDb/sharding/2/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/1 |
/com.example.demo.job.FileBackupJobDb/sharding/1/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/0 |
/com.example.demo.job.FileBackupJobDb/sharding/0/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/servers |
/com.example.demo.job.FileBackupJobDb/servers/ip18 |
/com.example.demo.job.FileBackupJobDb/servers/ip2 |
/com.example.demo.job.FileBackupJobDb/leader |
/com.example.demo.job.FileBackupJobDb/leader/sharding |
/com.example.demo.job.FileBackupJobDb/leader/election |
/com.example.demo.job.FileBackupJobDb/leader/election/latch |
/com.example.demo.job.FileBackupJobDb/leader/election/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/instances |
/com.example.demo.job.FileBackupJobDb/instances/ip18@-@19084 |
/com.example.demo.job.FileBackupJobDb/config | {"jobName":"com.example.demo.job.FileBackupJobDb","jobClass":"com.example.demo.job.FileBackupJobDb","jobType":"SIMPLE","cron":"0/10 * * * * ?","shardingTotalCount":4,"shardingItemParameters":"0\u003dtext,1\u003dimage,2\u003dradio,3\u003dvedio","jobParameter":"","failover":false,"misfire":true,"description":"","jobProperties":{"job_exception_handler":"com.dangdang.ddframe.job.executor.handler.impl.DefaultJobExceptionHandler","executor_service_handler":"com.dangdang.ddframe.job.executor.handler.impl.DefaultExecutorServiceHandler"},"monitorExecution":true,"maxTimeDiffSeconds":-1,"monitorPort":9888,"jobShardingStrategyClass":"","reconcileIntervalMinutes":10,"disabled":false,"overwrite":true}
里面展示的其實就是FileBackupJob任務(wù)在Zookeeper中的信息。
到此這篇關(guān)于Java Elastic-Job分布式定時任務(wù)使用方法介紹的文章就介紹到這了,更多相關(guān)Java Elastic-Job內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用AOP+反射實現(xiàn)自定義Mybatis多表關(guān)聯(lián)查詢
這篇文章主要介紹了使用AOP+反射實現(xiàn)自定義Mybatis多表關(guān)聯(lián),目前的需求是增強現(xiàn)有的查詢,使用簡單的注解即可實現(xiàn)多表關(guān)聯(lián),本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Java使用Jsoup解析html網(wǎng)頁的實現(xiàn)步驟
Jsoup是一個用于解析HTML文檔的Java庫,本文主要介紹了Java使用Jsoup解析html網(wǎng)頁的實現(xiàn)步驟,可以提取文本、鏈接、圖片等,具有一定的參考價值,感興趣的可以了解一下2024-02-02
springmvc Controller方法沒有加@ResponseBody導(dǎo)致api訪問404問題
這篇文章主要介紹了springmvc Controller方法沒有加@ResponseBody導(dǎo)致api訪問404問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Spring Boot結(jié)成MyBatis-Plus最全配置指南
本文主要介紹了Spring Boot結(jié)成MyBatis-Plus最全配置指南,包括依賴引入、配置數(shù)據(jù)源、Mapper 掃描、基本CRUD操作等,具有一定的參考價值,感興趣的可以了解一下2025-03-03

