开发者社区> 问答> 正文

XXLJOB 定时任务偶尔没有触发是怎么回事?

你好,想跟你请教个问题 。我部署了xxljob,部署架构,是1台nginx,挂载了2个xxladmin,版本是2.2.0,外部使用域名注册服务,现在发现2个问题:

1、在xxladmin的日志中,会出现Lock wait timeout exceeded; try restarting transaction的错误,at com.xxl.job.admin.core.thread.JobScheduleHelper$1.run(JobScheduleHelper.java:73) 看了一下源码,是com.xxl.job.admin.core.thread.JobScheduleHelper.start 中,select * from xxl_job_lock where lock_name = 'schedule_lock' for update 过去数据库锁失败了抛出的异常,考虑到2台xxladmin,每次应该只有一台获取到数据库锁,另外一台抛出这个异常,应该是正常的。 我的理解是否正确? 2、在启动几天之后,偶尔会有部分任务没有调度的情况,在2台admin的服务器上,也没有看到类似调度日志,数据库中,也没有调用记录。不清楚怎么个情况?查看日志,其他天也是好的 看了一下源码,看到JobScheduleHelper#pushTimeRing中,有debug的日志,目前已经将logback级别调整为debug,看一下有没有将任务,发送到time-ring 像第二个问题的情况,可能是什么原因?

展开
收起
海边一只船 2020-06-01 15:00:40 4030 0
1 条回答
写回答
取消 提交回答
  • 在触发创建任务时,对应的表被大事务锁住,几乎所有的调度都会有类型的情况,这种异常的发生几乎很少,而且也是因为不良好的使用导致,这个银行的对账一样的,做不到100%解决,但是可以通过及时通知相关运维人员人工解决

    2020-06-01 15:00:56
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载