我有以下情况:
- 调用了一些操作,结果创建了多个任务(数千个)
- 它们(它们的状态和详细信息)存储在数据库表中
- 我需要以某种方式在多个节点上执行这些任务
因此,显而易见的方法是为每个创建的任务(10000 个任务 - 10000 条消息)发送一条 JMS 消息,并且一个消费者池(每个节点)将执行它们 - 但这看起来有点过头了 - 侦听器需要获取任务无论如何,从 DB 通知它应该工作下一个任务就足够了,就好像 - 发送一条消息(“工作下一个任务”)并以某种方式将其设置为传递 10000 次。
如何解决这个问题?发送 10000 条消息真的是最好的主意吗?
此外,ActiveMQ 有这个消息调度的东西 [1] - 也许只是将周期设置为 0 并重复到 10000?那会正常工作吗?除了上面提到的还有没有更好的方法?
[1] http://activemq.apache.org/delay-and-schedule-message-delivery.html