我有一个要求,我必须处理消息的数量。这些消息将被另一个进程插入到数据库表中。我所要做的就是检查数据库中的新消息,并根据其配置将其发送给相应的客户,发送电子邮件或http。在任何给定时间消息的数量可能是几千,客户数量大约为1000.Java/JMS-处理处理失败场景的消息数
我打算设计这种生产者消费者的工作方式。与生产者线程一样,为新消息轮询数据库并将其放入队列和工作线程中读取这些消息和进程。
起初,它看起来像JMS是这个要求的正确解决方案。但是我正在寻找是否有更好的选择,比如ExecutorService,在给定以下情况下使用适合此要求的Threadpool。
- 如果一个消息传递失败,我将不得不多次重试它至少24小时。
- 如果一个消息传递失败的客户,其他消息传递也将失败的所有机会。所以,我应该在处理该客户的下一条消息之前尝试发送第一条消息。
这意味着如果我有一个所有客户的消息队列,那么如果一个消息失败,其他人将不会被处理。
有人能给我一个关于如何最好地处理这个问题的建议吗?
在此先感谢。
好的建议。但考虑到时间的限制,我更关注Java Thread/JMS中的其他解决方案。 – Chandra 2010-12-14 02:58:50