2012-11-02 91 views
2

一点点要求:石英作业调节

我有一些石英作业充当数据采集器,在可用时从不同位置收集数据。然后我有另一个工作[数据加载],这是从收集器作业调用/触发来更新我的数据库。

我的要求是,一些负载如何节流工作只有两个实例并行运行并处理收集工作

集电体的乔布斯1,2,...,N>装载机作业的工作(两个实例)

工作程序部署在精巧的Tomcat中。

两个问题: 1)如何使收集器作业等待,当Loader作业的两个实例已在处理中?有什么方法可以使用石英程序来推进FIFO逻辑,以将工作压缩到Loader工作?如果有人正在等待处理,我也不希望收集器接收另一个数据。 2)有没有办法只用两个线程来运行一个作业?一次不应多于两个实例?我对我的数据库表有限制,只能并行运行两个实例。

回答

0

看来你在这里有一个生产者 - 消费者的情况。 生产者和消费者通常被一个队列隔开。让您的收集器将项目放入(持久性?)队列中,让您的Loader从队列中读取并分派最多2个处理线程。

+0

这是一个生产者 - 消费者的情况。但目标是避免中间队列,我只想处理我可以从制作人位置处理的内容。这样生产者就可以知道还在等什么。 – user1795415

+0

即使有一个队列,生产者也可以轮询它,以知道里面有东西。如果你想要更多的指导,你需要澄清一下你想达到什么。 – Vitaliy

+0

我们有一个应用程序有几个独立的Java程序(20+程序),它们不断查看输入文件夹。他们拿起文件,然后把它们交给工作线程。只有一个工作程序可用,并且由于数据库资源上的cuncurrency问题,我们可以只允许其运行两个实例。我们使用Java线程来处理对工作线程的限制。我们要做的是摆脱standalobe程序,并将它们转换为部署在web服务器上的Quartz批处理程序。此外,我们正试图删除群集环境中的线程。 – user1795415