当前位置: 首页 > 知识库问答 >
问题:

Spring Integration-在列表中的其他消息之前路由返回拆分器列表中的第一条消息

劳和雅
2023-03-14
          ->       ->Splitter->Router->JmsOutboundAdapter (to MQ Queue)
WsEndpoint  Gateway                  |
          <-       <-----------------

当我测试这个流时,在所有其他业务消息开始被放置在request.jms.ch通道之前,第一条响应业务消息被放置在response.ch通道中(如预期的那样),但是网关和web服务endpoint不会在其他业务消息开始被写入MQ队列之前接收响应消息。

你知道这是为什么吗?如何确保在拆分消息开始写入MQ队列之前将响应发送回客户机?

使用:

o.s.i:spring-integration-java-dsl:1.0.0.RC1
o.s.i:spring-integration-jms:4.0.4.RELEASE

干杯,首相

共有1个答案

卜高超
2023-03-14

使拆分器之后的通道为ExecutorChannel;这样,一旦所有拆分的消息都被分派到执行器,原始线程将返回网关并等待答复。

请注意,DSL1.0.0..版本现在已经可用。

请参见新的逐行DSL教程(cafe演示中的第15行完成了您所需要的工作--添加了executorchannel)。

 类似资料:
  • 关于SI中的元素,我有几个基本问题。 我知道要形成定制的拆分器逻辑,我们需要扩展并覆盖方法。 然后,这些拆分消息的集合将显示在拆分器的输出通道上(假设在传入消息上没有配置回复通道)。

  • 问题内容: 我将重点放在关键值对上,以便与另一台服务器上的值进行比较以进行一致性测试。我遇到了一个返回错误的问题。 Msg 8167,第16级,状态1,第51行 列“类型”的类型与UNPIVOT列表中指定的其他列的类型冲突。 询问: 为什么这样不喜欢,,??? 我也尝试过 问题答案: 这实际上是整理问题。我可以通过更改以下行来解决: 特定的问题是整理为,而您提到的其他3列则整理为(至少,在我的机器

  • 问题内容: 我有一个功能。,它接受一个整数并返回True或False。 我有10个整数的列表。我想返回列表中的第一个项目(与原始列表的顺序相同),该项目已返回True。 尽可能地Python。 问题答案: next(x for x in lst if matchCondition(x)) 应该可以,但是如果列表中的所有元素都不匹配,它将提高。您可以通过提供第二个参数来抑制这种情况: 如果没有匹配项

  • 我有一个应用程序,我想使用队列A中的消息,但是如果队列A是空的,我希望它使用队列B中的消息,而不是闲置。我只希望它一次处理一条消息,如果使用者正忙于处理一条消息(来自任一队列),那么其他挂起的消息(在任一队列中)应该保留在他们的队列中,直到使用者再次空闲(这给其他使用者一个机会来处理新的消息)。 例如,如果一条消息在使用者空闲(等待)时到达队列a或队列B,那么使用者就会拾取它。如果在使用者当前正在

  • 我在Python中进行多元线性回归,但由于某种原因,系数没有正确返回为列表。相反,将返回列表中的列表: 这将返回列表[]的列表中的值,而不是列表[]。知道为什么会这样吗?输出: 但这行得通: 输出:

  • 我有交换和排队。生产者不需要消费确认,但在某些情况下,由于缺乏其他数据,消费者在当前时刻可能无法处理消息。因此,我想将这些消息返回到队列的末尾。怎么做?还是在我拒绝邮件时自动完成? 流量: Message1被使用并在数据库中创建一些记录 所以存在消息排序问题,在一般情况下,我会按顺序获取消息,因为大多数组件都能正确地传递消息。我想解决一个潜在的问题,当Message1的制作人由于负载过重或其他原因