如果执行中的异步任务的信息和数据库(数据)在应用服务器上发生了不一致,那么任务有时会一直处于执行中的状态。

 
【现象】

如果执行中的异步任务的信息和数据库(数据)在应用服务器上发生了不一致,那么任务有时会一直处于执行中的状态。
如果在串行队列中进入此状态,则不会执行任何后续任务。

【条件】

如果满足以下所有条件,则会发生此情况。
・使用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
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
由 Zendesk 提供技术支持