将 JMS 用于长时间运行的进程?

wsb*_*383 5 java jms

有人可以指出我的教程或类似的代码,其中 Web 应用程序使用 JMS 来执行长时间运行的后台进程吗?(而不是使用线程),我相当熟悉 JMS 消息传递的概念,但从未使用过任何 JMS API 或代理(我正在考虑学习 Apache ActiveMQ)

我希望能够: 向队列提交消息以运行进程 在任意时间检查该进程的状态(进度)

谢谢!

Rom*_*eau 3

在您的上下文中使用 JMS 的真正目的是异步启动任务。这在中间件术语中称为“即发即忘”。JMS 具有保证传递语义,这意味着一旦消息被放入队列,它就保证最终到达那里。

这个想法是,您执行需要执行的任何任务,并且如果流程中有任何可以稍后完成的任务,那么您将一条消息放入队列中,稍后它将执行。这使您可以在有人等待响应时显着减少处理量。

JMS 的另一个好处是系统的不同部分不需要同时运行。当您的前端仍然工作时,使用消息的部分可以停机进行维护。