在业务流程中自动重试以进行异步故障转移方案

2020-09-10 15:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们的要求之一是具有...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我们的要求之一是具有自动重试功能,以实现业务流程中异步调用的故障转移方案。

例如,我定义了一个过程,如果目标系统有问题,该过程将调用目标系统,Hybris系统将自动重试3次,每次失败的请求间隔10分钟。

我们在Hybris中具有这种OOTB功能吗? 请回复。

感谢与问候,

2条回答
wang628962
2020-09-10 15:21

嗨,

您可以使用RetryLaterException。 https://help.hybris.com/6.7.0/hcd/7e8ff9d7653f43e8890bc8eb395d52a7.html

 私有静态最终int MAX_RETRIES = 10;
 
  公共无效运行(TaskService taskService,TaskModel任务)抛出RetryLaterException
  {
     if(...无法执行...)
     {
       if(task.getRetry()。intValue()<= MAX_RETRIES)
       {
          RetryLaterException ex = new RetryLaterException("无法执行");
          ex.setDelay(24 * 60 * 60 * 1000); //延迟24小时
          扔前
       }
       其他
       {
          抛出新的IllegalStateException("最终在" + task.getRetry()+"重试之后才能执行");
       }
     }
     其他
     {
       //执行...
     }
  }

  

一周热门 更多>