IBM MQ JMS Java侦听器代码保持程序运行

问题描述 投票:0回答:1

此问题是所提问题的延续IBM MQ listener service - onMessage not getting triggered

假设相同的代码正在生产中,现在我们如何保持程序运行。我觉得添加扫描仪代码不是实现它的正确或有效方法。有没有更好的解决方案来保持程序运行,所以当到达main末尾时,程序不会退出。理想情况下,我认为对启动方法qc.start()的调用应无限期等待。请让我知道我们如何以正确和理想的方式实施此操作。

要求是侦听器应无限期运行以等待新消息。我没有任何其他业务条件可以放入main方法中以保持程序运行。添加扫描程序代码似乎不是一个好方法。理想的方法是什么??

java jms ibm-mq
1个回答
0
投票

我想您要问的是如何使Java程序无限期地运行。

有几种方法,但是您确实需要一种通过用户中断或信号来终止它的方法,并且您不希望它处于紧密的循环中,这样会消耗所有的CPU和堆栈内存,没有任何余地onMessage事件。

您不想让onMessage进入睡眠状态,因此应该在辅助线程中生成它,从而允许主线程定期从睡眠中唤醒以检查是否有线程中断。终止信号。

基础是


Thread worker = new Thread(new xyz();
worker.start();

while(true) {
  try {
    Thread.sleep(sleep duration);
  } catch(InterruptedException ex) {
    // check for termination signal
    // if required, terminate
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.