https://blog.csdn.net/weixin_44798288/article/details/111772876
https://www.cnblogs.com/just-coder/p/10981618.html
https://blog.51cto.com/u_7117633/2920410
https://www.cnblogs.com/linjiqin/p/10785105.html
https://www.cnblogs.com/gcdd1993/p/12292411.html
首先是環境配置,提前安裝好以下三個軟件
- Maven3+
- Jdk1.8+
- Mysql5.7+
二、快速入門
2.1 初始化“調度數據庫”
請下載項目源碼並解壓,獲取 “調度數據庫初始化SQL腳本” 並執行即可。
“調度數據庫初始化SQL腳本” 位置為:
/xxl-job/doc/db/tables_xxl_job.sql
調度中心支持集群部署,集群情況下各節點務必連接同一個mysql實例;
如果mysql做主從,調度中心集群節點務必強制走主庫;
2.2 編譯源碼
解壓源碼,按照maven格式將源碼導入IDE, 使用maven進行編譯即可,不要忘記jdk設置、mvn clean package即可生成xxl-job-admin-2.2.0.jar,源碼結構如下:
xxl-job-admin:調度中心
xxl-job-core:公共依賴
xxl-job-executor-samples:執行器Sample示例(選擇合適的版本執行器,可直接使用,也可以參考其並將現有項目改造成執行器)
:xxl-job-executor-sample-springboot:Springboot版本,通過Springboot管理執行器,推薦這種方式;
:xxl-job-executor-sample-frameless:無框架版本;
2.3 配置部署“調度中心”
調度中心項目:xxl-job-admin
作用:統一管理任務調度平台上調度任務,負責觸發調度執行,並且提供任務管理平台。
步驟一:調度中心配置:
調度中心配置文件地址:
/xxl-job/xxl-job-admin/src/main/resources/application.properties
調度中心配置內容說明:
### 調度中心JDBC鏈接:鏈接地址請保持和 2.1章節 所創建的調度數據庫的地址一致
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root_pwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
### 報警郵箱
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
### 調度中心通訊TOKEN [選填]:非空時啟用;
xxl.job.accessToken=
### 調度中心國際化配置 [必填]: 默認為 "zh_CN"/中文簡體, 可選范圍為 "zh_CN"/中文簡體, "zh_TC"/中文繁體 and "en"/英文;
xxl.job.i18n=zh_CN
## 調度線程池最大線程配置【必填】
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100
### 調度中心日志表數據保存天數 [必填]:過期日志自動清理;限制大於等於7時生效,否則, 如-1,關閉自動清理功能;
xxl.job.logretentiondays=30
步驟二:部署項目:
如果已經正確進行上述配置,可將項目編譯打包部署。
調度中心訪問地址:http://localhost:8080/xxl-job-admin (該地址執行器將會使用到,作為回調地址)
默認登錄賬號 “admin/123456”, 登錄后運行界面如下圖所示。
此默認賬號密碼可在/xxl-job/xxl-job-admin/src/main/resources/application.properties文件中填寫
顯式的加上登錄調度中心的賬號密碼
xxl.job.login.username=admin
xxl.job.login.password=123456
至此“調度中心”項目已經部署成功。
2.4 配置部署“執行器項目”
“執行器”項目:xxl-job-executor-sample-springboot (提供多種版本執行器供選擇,現以 springboot 版本為例,可直接使用,也可以參考其並將現有項目改造成執行器)
作用:負責接收“調度中心”的調度並執行;可直接部署執行器,也可以將執行器集成到現有業務項目中。
將此項目單獨復制出來,idea啟動打包,xxl-job-executor-sample-springboot,可能會 遇到的問題!!!
步驟一:maven依賴
確認pom文件中引入了 “xxl-job-core” 的maven依賴;版本號根據調度中心的版本號一致
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.2.0</version> </dependency>
步驟二:執行器配置
執行器配置,配置文件地址:
/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
執行器配置,配置內容說明:
### 調度中心部署跟地址 [選填]:如調度中心集群部署存在多個地址則用逗號分隔。執行器將會使用該地址進行"執行器心跳注冊"和"任務結果回調";為空則關閉自動注冊;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### 執行器通訊TOKEN [選填]:非空時啟用;
xxl.job.accessToken=
### 執行器AppName [選填]:執行器心跳注冊分組依據;為空則關閉自動注冊
xxl.job.executor.appname=xxl-job-executor-sample
### 執行器注冊 [選填]:優先使用該配置作為注冊地址,為空時使用內嵌服務 ”IP:PORT“ 作為注冊地址。從而更靈活的支持容器類型執行器動態IP和動態映射端口問題。
xxl.job.executor.address=
### 執行器IP [選填]:默認為空表示自動獲取IP,多網卡時可手動設置指定IP,該IP不會綁定Host僅作為通訊實用;地址信息用於 "執行器注冊" 和 "調度中心請求並觸發任務";
xxl.job.executor.ip=
### 執行器端口號 [選填]:小於等於0則自動獲取;默認端口為9999,單機部署多個執行器時,注意要配置不同執行器端口;
xxl.job.executor.port=9999
### 執行器運行日志文件存儲磁盤路徑 [選填] :需要對該路徑擁有讀寫權限;為空則使用默認路徑;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 執行器日志文件保存天數 [選填] : 過期日志自動清理, 限制值大於等於3時生效; 否則, 如-1, 關閉自動清理功能;
xxl.job.executor.logretentiondays=30
步驟三:執行器組件配置
執行器組件,配置文件地址:
/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
執行器組件,配置內容說明:
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appname);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
步驟四:部署執行器項目:
如果已經正確進行上述配置,可將執行器項目編譯打部署,系統提供多種執行器Sample示例項目,選擇其中一個即可,各自的部署方式如下。
xxl-job-executor-sample-springboot:項目編譯打包成springboot類型的可執行JAR包,命令啟動即可;
xxl-job-executor-sample-frameless:項目編譯打包成JAR包,命令啟動即可;
至此“執行器”項目已經部署結束。
java -jar xxl-job-executor-sample-springboot-2.2.0.jar
運行執行器jar包時,會根據/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties配置文件自動注冊到調度數據庫中的xxl_job_registry表
至此,調度中心、執行器都已啟動,接下來就是新增具體要執行的任務了,在任務管理菜單中新增任務
java -jar xxl-job-executor-sample-springboot-2.2.0.jar --server.port=8082 --xxl.job.executor.port=8802
可以指定客戶端(執行器)運行的tomcat端口號和執行器端口號,啟動多客戶端,執行上述命令后,執行器中會有顯示
其他的慢慢摸索吧!!!!