如果消息执行失败了,那消息还会重复执行直到成功吗?还是说可以通过某种方式,比如执行计划中的车间消息处理计划,将失败的消息强制执行一遍?

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如果消息执行失败了,那消息还会重复执行直到成功吗?还是说可以通过某种方式,比如执行计划中的车间消息处理计划,将失败的消息强制执行一遍?

问题描述:

解决方案:

失败消息会拉过来重复执行,但是它跟执行计划没关系,它是在每次扫描触发执行消息时,都会取拉取失败消息。然而,拉取是有时效性的,我们预置的是15分钟之内的失败消息会拉取,因为失败的消息分两种:
暂时失败性消息
属于可以再抢救一下的,譬如没有赋车间调度汇报权限、没有审核基础资料等,自己在PC端操作一下就可以了。后面再处理消息时就会成功了。
永久失败性消息
这种一般是属于程序错误,或者数据错误导致,譬如严格控制时后序跑到前序汇报,或者没有汇报先质检(理论上,也是可以抢救的,但是要看机缘)。这种消息你持续执行N次也没有意义,所以我们在失效之后,就把它抛弃了,它就恒定在失败状态了,变成了一个loser。
这里要另外说明一下,我们在前面也做了一个比较机智的处理,就是一旦本次拉取的消息中有一个失败的,后续的消息要重新退回到待执行状态,而不是失败状态,这样做的目的就是后续的消息可以被其他消费者拉走执行,否则时限一到,他可能也变成loser了。
还有一点,我们不能指定某条消息去执行,因为我们总体上是要保证执行顺序的,所以每次触发消息执行,我们都是按照顺序从消息队列中提取前N条,很有可能并不包含本次产生的消息。也就是说,每次触发只是一个引子。


如果消息执行失败了,那消息还会重复执行直到成功吗?还是说可以通过某种方式,比如执行计划中的车间消息处理计划,将失败的消息强制执行一遍?

问题描述:解决方案:失败消息会拉过来重复执行,但是它跟执行计划没关系,它是在每次扫描触发执行消息时,都会取拉取失败消息。然而,拉取...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息