xxl-job 无法删除执行器、机器IP变更后注册的还是旧IP

针对删除执行器的场景,需要使用该执行器的任务都不能处于运行中
也即 xxl_job.xxl_job_info的ttrigger_status都不能等于-1

1.记录旧ID并删除

--查询并记录下旧IP的执行器对应的iID,方便后续更新原任务的执行器ID为新的执行器
select id from xxl_job.xxl_job_group g where g.address_list like '%旧执行器IP:旧执行器端口%'
--数据库变更
update xxl_job.xxl_job_info i,xxl_job.xxl_job_group g on i.job_group=g.id 
set i.trigger_status=0 
where g.address_list like '%旧执行器IP:旧执行器端口%'
--或者在调度器的任务管理中将该执行器的对应任务改为停止状态

2.重新注册后,更新原任务中执行器ID
删除后重新加入的执行器,需要将 xxl_job_info 表的job_group更新为新的xxl_job_group表对应执行器的id,否则会导致任务管理为空

update xxl_job.xxl_job_info i,xxl_job.xxl_job_group g on i.job_group=g.id 
 set i.job_group=g.id 
 where g.address_list like '%新执行器IP:新执行器端口%'
  and i.job_group="旧执行器对应group表的ID"

针对xxl_job部署的机器重启并且网络IP做了变更的情况,新启动的xxl_job再注册时实际上会读取主机名.
此时如果在 /etc/hosts 文件中设置了 旧IP 主机名 的映射,会导致新启动的执行器注册到调度器上的还是旧IP。

解决

#1.在root或者使用sudo执行:
vim /etc/hosts
#2.修改主机名指向新IP
#3. 刷新dns
service network restart   
#4. 重启执行器,此时直接刷新调度器看不到最新结果(可重新登录调度器或者直接看xxl_job.xxl_job_registry)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值