调用方调用我方服务时将notify_url一并传入。
我方处理完成后,通过该notify_url通知调用方处理结果。
该通知机制需要有一定重试策略,经讨论该重试策略用Activiti来实现。
1.流程定义如下图所示:
2.当通过notiry_url推送通知出现异常时,“推送通知”节点抛出Activiti特定的Exception。
3.该ActivitiException将会被ErrorBoundaryEvent捕获。
4.进而通过Timer来进行定时重试。
5.根据相关支付通知经验,重试策略暂定为:
1)若推送通知出现异常,则每隔一段时间重新推送一次
2)时间间隔为 5s ,2m, 10m, 15m, 1h, 2h, 6h, 15h, 25h
3)直至通知成功, 或超出重试策略则停止通知
6.停止后需要人工介入
7.启动 “推送通知”代码片段:8.Activiti Service Task 代码片段: