在写ServiceTask监听类的时候,监听类中同时要调用几个服务去进行同步,这时要考虑同步失败如何进行处理。
我目前的想法是,一个是失败后自动重试,重试失败后再由定时任务跑批同步。
设置失败后自动重试(待验证):
在bpmn流程图的xml文件的标签中增加如下配置:
<serviceTask activiti:async="true" activiti:exclusive="false" activiti:expression="${demoService.getSentence(execution)}" id="demoServiceTask" name="demoServiceTask">
<extensionElements>
<activiti:failedJobRetryTimeCycle>R5/PT1M</activiti:failedJobRetryTimeCycle>
</extensionElements>
</serviceTask>
①配置async为true,默认为false
②R5/PT1M:表示配置重试次数为每个1分钟重试一次,总共重试5次
参考:https://my.oschina.net/go4it/blog/756149