Please answer some questions before submitting your issue. Thanks!
Which version of XXL-JOB do you using?
2.1.2
Expected behavior
任务正常运行
Actual behavior
我们有一个一分钟调度一次的任务,2022-03-31 11:28:30 的时候调度了一次,但是这次调度始终没有结果,后续的任务正常的触发,但是得不到执行,阻塞时间已有3天,2022-04-02 早上9点发现时,手动kill调了阻塞的任务,后面任务才正常调度
Steps to reproduce the behavior
测试环境未重现此问题
9条答案
按热度按时间nzrxty8p1#
你这个是不是得看你的任务内容是啥啊,看你描述的这个问题,好像和调度中心,和执行器关系不大,应该是你的业务代码问题吧?
wgx48brx2#
任务配置
阻塞策略:单机串行
路由策略:最后 一个
Cron: 30 * * * * ? (每分钟执行一次)
问题现象
问题出现之前,任务调度正常,在2022-03-31 11:28:30这个时间时,触发了一次调度,但是这次调度的状态显示是执行中,导致后续触发的调度一直是执行中,直到今天运维才发现,然后我手动终止了任务,后续的调度恢复了正常。
看了下任务代码,最多耗时10几秒左右,不可能会阻塞3天的,但是这个任务在运行的过程中好像执行到一半突然消失了
任务,后面的日志都没有打印出来,什么信息也没有,不知道发生了什么,有大佬遇到这种情况么
djp7away3#
任务正常执行完的话,会打印如下几句日志
开始推送消息,消息ID[id1,id2,id3,...]
消息推送成功,推送地址: url1, 消息ID[id1, id2]
消息推送成功,推送地址: url2, 消息ID[id3, id4]
......
出现异常时,任务打印的日志如下
开始推送消息,消息ID[id1,id2,id3,...]
只有这一句日志,好像从这里突然就什么都没有了,异常报错都没有看到
c9x0cxw04#
看了job的源码,发现即使任务出现异常,也会被JobThread捕获的,不会出现阻塞这么久的情况,所以实在是不知道发生了什么
r55awzrz5#
如果任务没有执行完,同一个任务是不能并发执行的,你可以换个任务执行同样的业务逻辑
azpvetkf6#
如果任务没有执行完,同一个任务是不能并发执行的,你可以换个任务执行同样的业务逻辑
所以没有太搞明白为什么第一个出现阻塞的任务为什么过去了3天还没有执行完,现实情况下应该是不会执行这么久的,仔细排查第一次阻塞的任务,好像莫名的中断了,什么日志都没有
昨天又生产环境又出现了这种连续阻塞的情况
ubof19bj7#
你在代码里有没有加锁的地方,或者其它的, 另外可以在阻塞的时候打印一下stack的信息,看一下代码大概是在哪个位置上阻塞着
jchrr9hc8#
@wang-yonglin 阻塞的问题解决了吗
rvpgvaaj9#
遇到同样的问题,经过排查是我们业务代码阻塞了。手动kill的时候实际上是终止了线程的阻塞状态(wait、join、sleep)。于是kill之后就可以继续往下执行了。