Apache camel Camel中路由的异步处理

Apache camel Camel中路由的异步处理,apache-camel,Apache Camel,路由1: 1. Send Message M1 to MQ Q1. // This message goes to a program that consumes from Q1 and once some processing is done, write message M2 to Q2.<br/> 2. Upon receiving Message M2 on Q2, //Q2 receives several messages (M2,N2,P2, etc.). ONLY

路由1:

1. Send Message M1 to MQ Q1. // This message goes to a program that consumes from Q1 and once some processing is done, write message M2 to Q2.<br/>

2. Upon receiving Message M2 on Q2, //Q2 receives several messages (M2,N2,P2, etc.). ONLY when M2 is received, the Route1 should continue.<br/>

3. Send message M3 to Q3. // The step should be executed only after step 2 is complete<br/>
1。将消息M1发送到MQ Q1。//此消息发送到从Q1开始使用的程序,一旦完成某些处理,将消息M2写入Q2。
2.在Q2上接收到消息M2后,//Q2将接收多条消息(M2、N2、P2等)。只有当收到M2时,路由1才应继续。
3.将消息M3发送到Q3。//只有在步骤2完成后才能执行该步骤
步骤2意味着需要检查来自Q2的消息,并且只有当它被证明是M2时,才应该恢复路由1。我们是否可以在路由等待消息时暂停路由,并在消息到达后恢复路由? 我们是否可以发起一个事件,以便任何等待M2的路线都可以恢复?我们确信,在所有并行执行的路由中,只有一个可以等待M2。我们需要做什么才能恢复路线

谢谢,
Yash

有两个选项可用于在运行时控制路由

  • 使用添加路由生命周期回调
  • 用于根据消息属性/内容应用特定逻辑
  • 使用根据各种规则等将消息分组在一起
  • 使用组件控制管线状态

另请参阅本页,了解

RoutePolicy似乎没有回调功能,在将消息发送到端点时调用回调功能。理想情况下,当我们发送到MQ时,我们希望将该死记硬背的实例置于挂起状态。如果我们实现了基于内容的路由,我们如何恢复被挂起的路由?正确,如果有问题的路由没有运行,它在外部恢复之前无法运行策略逻辑…也就是说,您可以对RoutePolicy使用OneXchangeBeagin()回调来触发其他路由上的逻辑…请参阅其他选项