我目前正在开发一系列警报,这些警报将检查来自外部Web服务的响应的状态,并根据响应对象的状态发送警报(例如超时,无效数据等)。我希望主线程在评估响应并发送警报时继续工作。
我有两个直接的选择:
它们对我来说似乎都是不错的选择,但我倾向于使用线程命令,因为我不需要消息队列的大部分功能。
问题:您如何决定使用哪个以及为什么?
答案 0 :(得分:6)
两个字:
保证交付。如果这对您很重要,那么您可以使用消息队列。
答案 1 :(得分:2)
听起来你正在把一些东西放在一起来处理应用程序中的事件。为此,java.util.concurrent包中有很多选项。消息队列有利于保证交付(可以提供持久性)并允许消息到多个服务器。
util.concurrent的ExecutorService允许您提交要在线程池上执行的任务。它返回的未来允许您继续处理并在以后检查结果。
Future<?> submit(Runnable task)
如果这不是您所需要的,则java.util.concurrent中可能还有其他选项。
答案 2 :(得分:1)
我会根据你的想法决定......一个完整的消息队列,虽然非常强大,但是比你需要的还要大。更不用说它是另一个进程/服务器/等。所以,我会投票给第二个选项。 : - )