0

我们在 BPM 中有两个事件。一个人调用微服务并结束。微服务将完成响应,另一个事件将捕获完成响应。

但有时,甚至在分派第二个事件之前就收到了完成响应。这会导致错误。除了要求微服务重新发送响应之外,有没有更好的方法来减少调度程序调用第二个事件所花费的时间?

请告诉我。

4

1 回答 1

0

我正在努力追随你正在做的事情。我认为您正在从 BPM 向微服务进行调用,然后转到消息事件以等待微服务响应,而您看到的问题是来自微服务的事件在 BPM 引擎之前发出处于“等待”事件中,因此消息丢失。

首先我要提到这听起来可能不属于业务流程级别,因为它感觉更像是一个集成问题而不是业务流程问题,但有时我们无法选择我们的工具。

虽然我没有在 Flowable 中做到这一点,但我知道如何在其他一些 BPM 引擎中解决它。问题(如果上述内容正确的话)是我们真的想确保在响应发生之前等待响应,这样我们就不会错过它。以这种方式定义模型非常简单。我会做以下事情 -

  1. 在微服务调用之前插入一个拆分。
  2. 在从拆分到微服务的分支上,插入一个等待时间非常短(例如约 5 秒)的计时器事件
  3. 在另一个分支上,放置您的监听事件。由于它没有计时器,因此它应该在调用微服务之前等待。
  4. 在微服务调用和监听器之间加入一个连接。现在您将在两件事都成立后继续前进 a) 您已调用 MS 调用 b) 您已收到该调用的响应。
于 2021-09-09T02:02:50.877 回答