java - Camel 消费者: Dynamic Delay Times

标签 java apache-camel

我一直在尝试寻找和测试不同的解决方案来解决我在 Camel 的延迟属性中发现的问题。看来 Camel 延迟只能在运行时设置。我已使用以下代码对此进行了测试,并在后续民意调查期间更新了变量“CAMEL_DELAY_TIME_IN_MILLI_SECONDS”。

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

我的问题是围绕 Camel 动态延迟的能力。是否有一种方法允许开发人员创建一个函数来定义它? Camel 用户是否通过在进程中添加 thread.sleep 函数来创建临时延迟来解决此问题?

最佳答案

您可以在延迟中使用表达式,其中可以使用任何 Camel 语言 ( http://camel.apache.org/languages ),例如使用 bean 语言 ( http://camel.apache.org/bean-language.html ) 调用 bean 上的方法:

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

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

关于java - Camel 消费者: Dynamic Delay Times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46781886/

相关文章:

java - 在不使用拆分或循环的情况下使用 IndexOf 和子字符串拆分字符串

java - "Method foo() needlessly boxes a boolean constant" Sonar 警告

java - Spring 安全 POST 方法抛出 403 错误

java - Camel RX 不会删除从 S3 消耗的对象

Java 套接字创建花费的时间太长

java - 需要教程,关于Spring Web Enterprise开发的非常快速的教程吗?各种示例

apache-camel - Camel - 扩展 Java DSL?

java - Camel 收件人列表/多播与聚合策略

java - Camel Spring Java 配置 Camel 2.15 与 Camel 2.17

routes - apache camel 如何记录路线进度