我们知道徐雪力老师的xxl-job定时调度任务是可以解决集群情况下的调度重复问题的...
内置了轮询,单一,随机,hash等算法来实现单个机器执行定时 的需求.
但是我们项目因为是多环境的....而每一个执行器都有他自己的执行器Appname,所以如果一个项目中的定时任务执行器名称就设置一个的话,回到多环境情况下使用的是同一个执行器名称.也就会造成注册的ip地址是多个环境的机器的ip.
此时再进行轮询就会造成该定时任务轮询到了不同机器上面.
为了解决这个问题有两种方案:
方案一:搭建多套环境的xxl-job-admin.分别管理开发,测试,冻结,生产环境的定时任务.
优点:解决多环境问题下单台调度中心调度到不同环境下的定时任务.
缺点:维护比较复杂,效率低下:
方案二:搭建单个xxl-job-admin调度中心,然后项目中根据多套环境的配置文件来区分执行器
每个环境中配置执行器的配置信息时设置不同的执行器名称和ip地址.
如下:
优点:可以解决多环境问题.根据执行期名称来区分执行器.一套调度中心管理多套环境.
缺点:多环境在一起容易误操作生产.(可以为不同环境建立不同子账号解决该问题)
下面是定时调度中心的执行器实现效果