前文
上文中讲到用boot集成xxl-job写了一个小demo,那么咱们又会考虑一个问题,我想要他一开机就自动开启这个xxl-job怎么办呢,有没有好办法呢,具体怎么实现呢?那么今天我们就用docker来安装xxl-job,让他开启docker就开启xxl-job,这样子使我们写业务就好写多了,开机直接启动,直接访问。
1.拉取镜像
当然镜像下面也有xxl-job的简介和一些历史,大家可以查看那我个人选择的版本是2.3.0,大家可以根据自己的需要去拉取镜像
docker pull xuxueli/xxl-job-admin:2.3.0
2.创建容器
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.203.139:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=123456" \
-p 8888:8080 -v /tmp:/data/applogs \
--name xxl-job-admin --restart=always -d xuxueli/xxl-job-admin:2.3.0
当然开启xxl-job映射的mysql地址需要大家安装mysql哟,把mysql也开启就可以访问到啦,当然需要大家在mysql中导入xxl-job的那八张图就可以了 ,这样子咱们的docker安装xxl-job就可以了。
3.xxl-job的策略
当执行器集群部署时,提供丰富的路由策略,包括;
FIRST(第一个):固定选择第一个机器;
LAST(最后一个):固定选择最后一个机器;
ROUND(轮询)
RANDOM(随机):随机选择在线的机器;
CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。
LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举;
LEAST_RECENTLY_USED(最近最久未使用):最久未使用的机器优先被选举;
FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度;
BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;
SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务;