使用Spring DSL配置Camel线程名称

时间:2012-11-14 03:40:00

标签: spring apache-camel

如何配置Camel(版本2.8.1)创建的线程名称?我需要有更简洁的线程名称用于记录目的。

Camel documentation表示默认为:

Camel (#camelId#) thread ##counter# - #name#

其结果如下:

Camel (bundle_camel) thread #114 - JmsConsumer[SomeClassNameHere]

但我只想:

#camelId#-#counter#

这会给我一些类似的东西:

bundle_camel-114

文档说明了如何通过调用manager方法来更改线程名称模式,但我们只通过Spring DSL配置文件与Camel进行交互。

2 个答案:

答案 0 :(得分:2)

是的,您需要使用执行程序服务策略定义<bean>并设置其模式。虽然我认为我们应该允许将命名模式配置为<camelContext>上的属性,您可以为JMX命名执行此操作。我将记录一张票以在Camel中增强此功能(尽管ASF JIRA目前处于维护模式)

http://camel.apache.org/advanced-configuration-of-camelcontext-using-spring.htmlhttp://camel.apache.org/threading-model.html

上查看一些详细信息

答案 1 :(得分:1)

Camel 2.11让这更容易。

您可以在XML文件中使用threadNamePattern属性,如下所示:

<camelContext xmlns="http://camel.apache.org/schema/spring" threadNamePattern="#camelId#-#counter#">
  <route>
      ...
  </route>
</camelContext>

记录here