【发布时间】:2019-03-19 06:03:51
【问题描述】:
我有数千个文件要单独处理。 我使用 Apache Camel 处理文件
from("file:C:\datafiles\input?readLock=changed&readLockTimeout=100&readLockCheckInterval=20") .process(new MyProcessor()).to("file:C:\datafiles\output");
我一次做一个文件,需要 30 分钟。
我想我可以在 10 个并发线程中同时处理 10 个文件,并且我可以在 3 分钟而不是 30 分钟内完成。
我的问题是,实现我的 10 个线程的“正确”方法是什么?当一个完成后,创建一个新的,最大数量为 10。
当我搜索互联网时,我得到了一些建议,例如使用
- maxMesssagesPerPoll
- 线程(10)
- 聚合器
但我这里与聚合器没有任何关系,只需要从一个远程位置处理每个文件,处理它,然后将它们放在另一个远程位置。
【问题讨论】:
-
创建多个 Route 实例是在网上找到的另一个选项。但我正在寻找使用多线程方法而不是新的 RouteBuilder 实例的选项。由于给定的参考我搜索的内容不适合我的实现,希望这会有所帮助。
-
线程池和 seda 队列是我用来做并行导入的。我们可以看看一些代码吗?
-
from("file:C:\datafiles\input?readLock=changed&readLockTimeout=100&readLockCheckInterval=20") .process(new MyProcessor()).to("file:C:\datafiles\output" );
标签: java parallel-processing apache-camel