gpt4 book ai didi

java - IBM MQ JMS java 监听器代码保持程序运行

转载 作者:行者123 更新时间:2023-12-01 19:31:38 26 4
gpt4 key购买 nike

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

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

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

最佳答案

我想你问的是如何让Java程序无限期地运行。

有多种方法,但您确实需要一种终止它的方法,无论是通过用户中断还是信号,并且您不希望它处于紧密循环中,因此它将消耗所有 CPU 和堆栈内存,不留任何空间您的 onMessage 事件。

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

基础知识是


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

while(true) {
try {
Thread.sleep(sleep duration);
} catch(InterruptedException ex) {
// check for termination signal
// if required, terminate
}
}

关于java - IBM MQ JMS java 监听器代码保持程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59642081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com