骆驼消费者:动态延迟时间

问题描述:

我一直在试图找到和测试我发现与骆驼的延迟属性的问题的不同解决方案。看来,骆驼延迟只能在运行时设置。我已经使用以下代码测试了这一点,并在随后的调查中更新了变量'CAMEL_DELAY_TIME_IN_MILLI_SECONDS'。骆驼消费者:动态延迟时间

 from(incomingEndpoint) 
      .delay(CAMEL_DELAY_TIME_IN_MILLI_SECONDS) 
      .threads(MAX_NUMBER_OF_CAMEL_THREADS) 
      .process((exchange) -> {... 

我的问题是围绕骆驼能力有一个动态的延迟。有没有一种方法允许开发人员创建一个函数来定义这个?骆驼用户是否可以通过在进程中添加thread.sleep函数来解决此问题,以创建转换延迟?

您可以延迟使用表达式,你可以使用任何骆驼语言(http://camel.apache.org/languages),如调用与豆语言豆(http://camel.apache.org/bean-language.html)的方法:在

from(...) 
    .delay(method(MyClass.class, "myMethodName")) 
    ... 

然后bean方法可以返回任何你喜欢的动态值。或者,如果您想根据消息中的某些信息计算值,则可以这样做,并使bean参数绑定(http://camel.apache.org/bean-binding.html)可以传递此类信息,或尝试查看简单语言(http://camel.apache.org/simple.html)是否足够。

+0

嗯......我确实尝试引用与路由相同的类的方法,但是我没有指定类似上面所示的类。让我试试看。 –

+0

可以确认此语法有效。感谢您的奖金信息。 –