在Java中处理链中的作业排队

时间:2011-06-09 15:51:58

标签: java queue jms correlation

我目前正在java中设计一个关联引擎,它从pdf文件中提取数据,并在关系数据库中关联(必要时提醒警报)结构化数据。

专注于处理pdf文件,系统包括:

从pdf执行自定义提取的组件。

将有时无序的不清洁数据解析为所需数据结构的组件

规范化组件,用于标准化比较值

与db接口的组件(提取的数据将与其余数据一起插入)

组件应该可以在其他处理链中重复使用,但它们最初都在同一个系统上运行。

我认为在组件之间进行某种缓冲是明智的,使用JMS队列是明智的还是会使问题复杂化?我一直在尝试一个简单的linkedblockingqueue对象,但是这个对象必须在组件之间传递,所以它需要一个主组件来驱动我不确定所需的一切,是否有一种标准的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

除非您有其他要求,否则我会使用链式通话。

loadPDF(new PDFExtractor(new PDFParser(new Normalizer(new DBEnricher(listener)))));

如果你想要多个线程,我会使用ExecutorService线程池处理不同线程中的每个文件。