工作流异常挂起:当前寻址消息正在运行中,定时等待完成之后才能运行,业务主键:xxxxxx原创
1人赞赏了该文章
139次浏览
编辑于2024年05月24日 10:18:32
记录一次工作流异常,排查过程。
异常如下
bos.wf.addressProcessUnknowException
kd.bos.exception.KDException: 当前寻址消息正在运行中,定时等待完成之后才能运行,业务主键:
排查了工作流,发现是在人工节点,用donothing操作触发流程
发现开发人员在调度代码中,触发了该donothing操作,从而触发工作流。
部分代码如下:
问题原因
上述代码编写有误,删除单个业务对象,但是对整个业务对象集合做donothing操作触发工作流
假设循环体的第一遍先走下面else逻辑,那么就是对全部的业务对象触发工作流,此时,全部的业务对象都会进入工作流进行寻址,不允许再做其他操作。
假设循环体的第二遍,走了if里面的删除逻辑,准备对集合内某一个业务对象做删除操作,由于工作流正在寻址,不允许再做其他操作,此时就会提示当前寻址消息正在运行中,定时等待完成之后才能运行。
该问题是由于业务代码编写错误导致的。
处理方案
在执行donothing操作触发工作流时,只执行单个业务对象即可。
推荐阅读