这是用户在 2024-3-28 22:05 为 https://camel.apache.org/manual/delay-interceptor.html 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

 延迟器


延迟器用于减缓消息的处理速度。


这允许您在路由中每个步骤之间设置固定的延迟时间,以更好地展示事物是如何缓慢地发生的,这样您就不会被大量的日志输出所淹没。

 使用延迟器


延迟器可以在两个级别上进行配置

  •  CamelContext - 全局


  • 路线 - 每条路线个别计算


使用 XML DSL 进行配置


只需将 <camelContext> 标签的 delayer 属性设置如下所示:

<camelContext id="camel" delayer="500" xmlns="http://activemq.apache.org/camel/schema/spring">
    <route>
        <from uri="direct:start"/>
        <to uri="mock:result"/>
    </route>
</camelContext>

 使用 Java 进行配置


您可以通过设置延迟值在 CamelContext 上启用延迟消息,如下所示:

camelContext.setDelayer(200);


配置在路由级别上


您还可以根据需要在 camel 上下文和每个路由上进行配置。每个路由将覆盖 camel 上下文的设置。


例如下面的路线只是第一个延迟 200 毫秒的路线。

<camelContext>
   <route delayer="200">
     ...
   </route>

   <route>
     ...
   </route>
</camelContext>


在 Java DSL 中:

from("direct:start").delayer(200)
    .to("mock:result")