我的要求如下
生产者/消费者是应用程序代码的一部分,它是一个JBoss应用程序。
为了确保每个消费者选择一个不同的记录(在并发的情况下),我们执行以下操作
我们看到的一个问题是,当生产者填满游泳池时,消费者会被阻止。由于生产者可能需要一些时间才能完成,因此消费者的更新会等待生产者完成的插入,因此该期间的所有消费者都会被阻止。
有没有办法解决这个问题?任何其他设计方法也是受欢迎的。
答案 0 :(得分:1)
您是否需要将关系数据库用作队列?这似乎是解决问题的一种不好的方法,特别是因为消息队列已经解决了这些问题。您可以使用MySQL来保持队列的状态,但它本身不会形成良好的队列。
看看ActiveMQ或JBoss Messaging(假设您使用的是JBoss)