【问题标题】:How to send immediate response on camel route after placing message on queue将消息放入队列后如何在骆驼路线上发送即时响应
【发布时间】:2012-11-24 16:07:12
【问题描述】:

我正在尝试实现一个非常简单的骆驼路由,通过该路由从 CXF 端点接收请求并将其放入队列中以供以后异步处理。将消息放入队列后,我需要能够向调用者发送响应,指示已收到该消息。我已经完成了教程,但似乎无法正常工作。发生的情况是,一旦将消息放入队列,在消息从队列处理到预期目的地之前,不会向调用者发送响应。

代码如下

    from (SOAP_ENDPOINT)
        .to(SEDA_RECEIVED)
        .transform(constant(OK))//I expect this transform to return OK to caller
        .log("OK response sent back to caller");

    from (SEDA_RECEIVED)
        .to(BEAN_CONVERT_REQUEST)
        .to("activemq:queue:events");

    from ("activemq:queue:events")
            .to(BEAN_STORE_TO_DB);

【问题讨论】:

  • 在这种情况下,什么路由返回给调用者?

标签: activemq apache-camel


【解决方案1】:

而不是 到(SEDA_RECEIVED) 你可以试试 inOnly(SEDA_RECEIVED)

【讨论】:

  • 像魅力一样工作。感谢 cexbrayat
【解决方案2】:

是的,它是事件消息 eip http://camel.apache.org/event-message.html

还有一点相关的是wire tap eip http://camel.apache.org/wire-tap.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-30
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    相关资源
    最近更新 更多