使用Spring / Quartz,我有一个首先运行的ProducerJob。然后我有一个ConsumerJob必须等待ProducerJob的结果(它在数据库中创建记录)。
ConsumerJob收到ProducerJob结果通知的最佳方式是什么?我应该让ConsumerJob不断检查数据库,如果尚未完成ProducerJob,请等待睡眠/等待吗?
我意识到我的问题可能类似于Pass BlockingQueue in JobDataMap of Quartz,但没有找到具体的实施方案。仍然没有得到如何实现这一点。
答案 0 :(得分:2)
在生产者/消费者模式中,消费者必须等待生产者产生的数据。如果要使用数据库解耦两者,则消费者必须进行轮询。是。另一种解决方案是使用BlockingQueue并让使用者编写数据库条目。这将减少数据库负载,并且实现起来更加简单。并且生产者变得更快,这通常是使用这种模式的原因。