0

使用 Spring/Quartz,我有一个首先运行的 ProducerJob。然后我有一个必须等​​待 ProducerJob 的结果的 ConsumerJob(它在数据库中创建记录)。

将 ProducerJob 的结果通知 ConsumerJob 的最佳方式是什么?我是否应该让 ConsumerJob 不断检查数据库,如果 ProducerJob 尚未完成则休眠/等待?

我意识到我的问题可能类似于Quartz 的 JobDataMap 中的 Pass BlockingQueue,尽管没有确定具体的实现。尽管如此,仍然没有得到如何实施。

4

1 回答 1

2

在生产者/消费者模式中,消费者必须等待生产者生产的数据。如果您想使用数据库将两者解耦,则消费者必须轮询。是的。另一种解决方案是使用 BlockingQueue 并让消费者编写数据库条目。这将减少数据库负载并且可能更易于实现。而且生产者的速度更快,这通常是使用这种模式的一个原因。

于 2012-08-12T16:00:12.007 回答