【问题标题】:How to know when Mulesoft async scope is finished如何知道 Mulesoft 异步范围何时完成
【发布时间】:2023-03-20 15:09:01
【问题描述】:

我在主要流程的末尾有异步范围。三个进程的异步范围流引用:日志记录、审计和入站有效负载操作。问题是现在我需要修改主要流程并添加响应“机制”。响应内容取决于 Web 服务响应,它位于异步范围流之一中。所以我需要以某种方式“等待”每个进程在异步范围内完成以发送正确的响应。可以尝试将线程设置为睡眠,但在我的情况下这不是一个好的解决方案。 Mule 注册表中是否有一些变量/属性可以跟踪异步处理或其他内容?目前,睡眠有多种可能性,但这很脆弱,总体上不是一个好的解决方案。

【问题讨论】:

  • 可能没有帮助,但也许请求-回复范围适用于您的场景?它是异步的,有回复。 docs.mulesoft.com/mule-runtime/3.9/request-reply-scope
  • 你为什么写“可能没有帮助”?什么让你有那个想法?我不太了解队列以及技术、模式等

标签: asynchronous mule mule-esb


【解决方案1】:

看起来异步范围不再适合该用例。它并不意味着等待或返回,因此您需要将其删除。您可以在流程中执行请求并根据需要保存响应。

我强烈建议不要使用任何一种 sleep() 作为同步方法。这根本不是一个真正的解决方案。时间上的任何变化都会破坏它。

【讨论】:

  • 我尝试删除异步作用域,但是为异步处理编写了很多代码,因此会导致很大的变化和大量的工作,我没有太多时间.我担心这是唯一明智的解决方案......
  • 您还可以尝试用丰富器替换异步,将输出重定向到变量并减少对其余流程的影响。
猜你喜欢
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 2014-03-27
  • 1970-01-01
相关资源
最近更新 更多