Spring Boot 如何在application.xml中配置DefaultShutdownStrategy以实现 Camel 路由正常关闭

7xzttuei  于 2023-03-18  发布在  Spring
关注(0)|答案(1)|浏览(135)

我们在Sping Boot 上使用Camel,我们有下面的application.yml属性文件来配置一些Camel设置。
我想关闭我的应用程序和 Camel 路线优雅,所以我绑使用DefaultShutdownStrategy,但我不知道什么是我需要在我的应用程序中使用的属性。yml启用?
我找不到任何地方在线以及,任何人都可以阐明这一点,请.或者你会建议如何实现优雅关机.

# Camel configuration:
camel:
  component:
    servlet:
      # With multiple camel servlets running within the same process you need to set the servlet name.
      # The servlet name is named after the port to ensure uniqueness without having to bring in a new parameter.
      servlet-name: camelServlet${SERVER_PORT:9000}

  springboot:
    name: pilot-manager-service
    main-run-controller: true
    routes-include-pattern: classpath:routes/**/*.xml,classpath:route-templates/*.xml
juud5qan

juud5qan1#

据我所知,在Camel中默认启用DefaultShutdownStrategy的优雅关机。
以下是application.yml文档中3.20.x的默认值。

camel:
  springboot:
    shutdown-log-inflight-exchanges-on-timeout: true
    shutdown-now-on-timeout: true
    shutdown-routes-in-reverse-order: true
    shutdown-suppress-logging-on-timeout: false
    shutdown-timeout: 300

请注意,在单元测试期间,camel似乎至少忽略了关闭超时值,而是使用10秒。
您也可以进行自定义camel上下文配置,您可以将camel上下文关闭策略设置为DefaultShutdownStrategy的新示例,您可以使用自己的属性占位符进行配置。但请注意,@PropertySource注解可能需要对yaml文件进行一些额外的工作。

相关问题