快速版
mysql
docker run --name mysql -d --restart=always -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=root_pwd mysql
注意root_pwd是xxl的配置文件里的密码,如果这里不一样则需要再xxl-job-admin里启动时指定密码
初始化数据库
xxl-admin
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?Unicode=true&characterEncoding=UTF-8" -p 8080:8080 --name xxl-job-admin -d xuxueli/xxl-job-admin:2.1.0
登录
连接8080端口,使用admin:123456登录。
executor
下载源码
从github迁下源码
制作image
然后进入xxl-job-executor-samples/xxl-job-executor-sample-springboot里,加上一个Dockerfile
FROM openjdk:11-jre-slim
MAINTAINER Qbit
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && $TZ > /etc/timezone
ADD target/*.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
CMD [""]
然后执行build
docker build -t xxl-job-executor .
启动executor
第一个启动比较简单
docker run --network=host --name xxl-job-executor1 -d xxl-job-executor
使用
登录admin,注意需要带上content-path
默认账号admin,密码123456
也可以通过修改数据库来修改密码,DB中密码时MD5加密的
执行器管理
然后进入执行器管理可以看到执行器的情况,有的executor也许已经自动注册了。一个appName对应一个SpringBoot Cluster,实现高可用。
这里添加appName,然后可以选择自动或手动。如果选择自动,然后executor也配置了相同的appName的话就会自动注册,不过有的时候executor搞不清楚自动的ip,那么就手工注册写入ip和端口
任务管理
执行器就位后就可以添加任务了,注意JobHandler的值要和Spring里注册的name一致,也就是和executor里 @JobHandler 的值一致
添加成功后可以使用操作->执行一次来试下。但是这里提示成功只是只成功调度,至于实际成功与否不一定
调度日志
这里才是看到真正调取情况的地方。
注意: 这里显示执行失败未必失败,要去看日志,也许是执行成功了但是executor未能及时返回然后被手工取消。
进阶
注意到这里的HttpJobHandler是GET请求,并不符合规范,可以自己写个新的为PUT请求之类的