【问题标题】:Apache Camel: Using split() and resequence() with multithreadingApache Camel:在多线程中使用 split() 和 resequence()
【发布时间】:2013-07-18 20:36:45
【问题描述】:

我有一个关于 split()、resequence() 与多线程的集成的问题。我的(幼稚)路线看起来像这样(缩写以解释问题):

from("file:input")
    .process(prioAssign)
    .split(body().tokenize("\n")).streaming()
        .resequence().simple("${in.header.prio}").allowDuplicates().reverse()
        .to("direct:process")    
    .end()
    .process(exportProcessor)

from("direct:process")
    .threads(10, 100, "process")
    .process(importProcessor) // take some time for processing

我喜欢完成以下事情:

  1. importProcessor 工作应该分布在多个线程中
  2. 项目(来自拆分器)应按优先级处理(重新排序)
  3. 必须在处理所有拆分对象时触发 exportProcessor(来自一个文件)

上面代码的问题是,如果我包含重新排序步骤,导出会立即触发并且重新排序本身不起作用。看来,我不太了解 Camel 背后的线程模型。

非常感谢所有提示!

【问题讨论】:

    标签: multithreading split apache-camel


    【解决方案1】:

    难道你的 prioAssign 处理器没有构建一个以后可以拆分的主体,因此拆分立即结束,所有内容都转移到了 exportProcessor?

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 2013-10-17
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多