【现象】
如果执行中的异步任务的信息和数据库(数据)在应用服务器上发生了不一致,那么任务有时会一直处于执行中的状态。
如果在串行队列中进入此状态,则不会执行任何后续任务。
【条件】
如果满足以下所有条件,则会发生此情况。
・使用2015 Spring及以后的版本
・因以下原因,在任务执行中执行进程不再存在时
・操作系统关闭
・通过操作系统的结束进程命令
・此外,用非常规方法停止应用程序
【解决方法 (到2016 Spring为止)】
在任务详细信息页面上尝试结束任务时,显示以下错误信息,并无法正常结束任务。
“任务不存在。可能已处理完毕。”
在这种情况下,请直接操作系统数据库来处理。
update im_async_task_info
set status='wait'
where message_id=' {message_id} '
and status='processing'
请在{message_id}中指定处于处理中的任务的任务信息ID。
处于处理中的任务将再次登记到队列的最前面,并重新执行。
重新执行结束后,将按顺序执行等待执行的任务。
【解决方法 (2016 Summer及以后)】
请在任务详细信息页面中结束该任务。
您将看到以下警告信息,但您可以结束该任务。
“任务不存在。可能已处理完毕。”
如果需要重新执行,请将 “重新登记到队列最前面” 指定为 “执行” 。
-- 适用对象 ----------------------------------------------------------------
iAP/AccelPlatform/全部更新版本
--------------------------------------------------------------------------------
FAQID:568
如果执行中的异步任务的信息和数据库(数据)在应用服务器上发生了不一致,那么任务有时会一直处于执行中的状态。