elastic job 发布版本后突然不执行问题解决

背景:

  1. <elastic.version>2.1.5</elastic.version>
  2. 分为本地,fat,uat,prd环境,本地和fat用的一个zk , uat,prd分别有各自的zk
  3. fat uat prd 三个环境都是2个服务器,集群部署
  4. 数据量比较少,因此,未配置分片,导致定时任务只会在一个服务器上面运行(此点需要研究是否允许轮询服务器执行)

描述:

  dev uat prd 一切正常
  fat 有异常,刚开始运行正常,后来fat发布版本后,任务不再执行。

检查过程:

  1. 检查zk,服务正常。
  2. 检查elastic job分片等配置,配置正常。
  3. fat启动单个服务器,定时任务仍然不执行。
  4. 后来突然想到,dev和fat用的同一个zk,分布式调度会根据zk节点来,会不会这里导致的问题?

验证过程:

  elastic job 看文档 https://shardingsphere.apache.org/elasticjob/current/cn/overview/
  从apache官网下载ui包  
  https://www.apache.org/dyn/closer.cgi/shardingsphere/elasticjob-ui-3.0.0-beta/apache-shardingsphere-elasticjob-3.0.0-beta-lite-ui-bin.tar.gz
  解压启动访问查看,发现 有多个instance 在此zk上面,全部处于执行状态,说明,定时任务已经在其他服务器运行,因此,fat发版新启动的服务不会执行。

出现原因:

  部门在研究新的容器部署,因此有新的fat环境在运行(命名为容器fat环境),导致fat环境的集群有多套,zk选择的是容器fat环境进行定时任务的执行。

解决方案:

  暂时解决方案:在UI上面,设置disable其余所有的instance,然后等到配置的时间间隔后,fat正常执行定时任务。
原文地址:https://www.cnblogs.com/cuiyf/p/14081423.html