私の Web アプリでは、実行可能なインスタンスを ScheduledExecutorService に送信します。実行可能なインスタンスでは、receiveNoWaitメソッドを使用してIBM MQからメッセージを受信し、セッションはCLIENT_ACKNOWLEDGEモードになっています。ScheduledExecutorService の shutdownNow メソッドを呼び出すと、acknowledge メソッドを呼び出さずに receive メソッドがメッセージを失うことがあります。何か提案はありますか?
メッセージを受信するコードは次のとおりです。
{
ScheduledExecutorService shutdownNow の場合、例外なく最初のログ情報しか表示されません。logger.info("获取消息");
メッセージ msg = consumer.receiveNoWait();
logger.info("获取消息成功");
メッセージを返します。
キャッチ(スロー可能なe){
logger.error("处理数的時候出现异常", e);
null を返します。
}