如何使用带线程池的apache-camel DSL?

时间:2014-02-26 20:59:22

标签: java multithreading apache-camel

我有一个Java camel示例,它在configure方法中定义了以下路由:

public final void configure() throws OperationNotSupportedException{
    RouteDefinition route = from("xmpp://localhost:5222/?blablabla...");

    // apply pre-processing filter
    FilterDefinition filterDefinition = route.filter().method(...);

    // apply main processor
    ExpressionNode expressionNode = filterDefinition.process(...);

    //apply post-processing filter
    filterDefinition = expressionNode.filter().method(...);

    // set destination
    expressionNode = filterDefinition.to("esper://session_X");
}

然而,这段代码也是一个瓶颈,我想提高它的效率。为此,我尝试使用线程池:

RouteDefinition route = from("xmpp://localhost:5222/?blablabla...").threads(10);

但是我总是收到错误。在这种情况下,我得到一个“无法从RouteDefinition转换为ThreadsDefinition”错误。我怎样才能让这段代码与线程池一起工作以提高效率?

1 个答案:

答案 0 :(得分:2)

您可以使用以下命令更改代码:

ThreadsDefinition route = from("...").threads(10);


RouteDefinitionThreadsDefinition都延伸ProcessorDefinition<Type>