在Java中处理链中的作业排队
我目前正在java中设计一个关联引擎,它从pdf文件中提取数据,并在关系数据库中关联(必要时提醒警报)结构化数据。
该系统专注于处理pdf文件,包括:
从pdf执行自定义提取的组件。
将有时无序的不清洁数据解析为所需数据结构的组件
一个归一化组件,它将对值进行标准化以进行比较
以及与db接口的组件(其中提取的数据将与其余数据一起插入)
组件应该可以在其他处理链中重复使用,但它们最初都在同一系统上运行。
我认为在组件之间进行某种缓冲是明智的,使用JMS队列是明智的还是会使问题复杂化? 我一直在试验一个简单的linkedblockingqueue对象,但是这个对象必须在组件之间传递,所以它需要一个主组件来驱动我不确定所需的一切,是否有一种标准的方法来解决这个问题?
除非你有额外的要求,否则我会使用链式通话。
loadPDF(new PDFExtractor(new PDFParser(new Normalizer(new DBEnricher(listener)))));
如果你想要多个线程,我会使用ExecutorService线程池处理不同线程中的每个文件。
- VisualVM:CPU /内存分析器停留在“连接到目标JVM ……”
- SpingREST:无法打开JPA EntityManager进行事务处理; 嵌套exception是org.hiberna
- 我疯了吗? 将已建立的产品从HSQLDB切换到Apache Derby
- Spring HandlerInterceptorAdapter postHandle有保证吗?
- Apache POI。 复制表
- Java 8流中的聚合运行时exception
- 如何让多个Key Binding同时工作?
- 关于java中的可克隆接口和object.clone()的困惑
- 通过reflection调用Java中的getter:重复调用它的最快方法是什么(性能和可伸缩性方面)?