El cambio en la hora del sistema provocó el problema de que el consumidor ActiveMQ estuviera muerto.
Información relacionada:/artículo/detalles? id=53501723
Cuando el agente llama al método consumer.receive(60000), hay una capa de operaciones dentro de MQ (método activemqmessageconsumer.dequeue).
Cuando la hora del sistema cambia (se ajusta hacia adelante), la hora utilizada por el sistema. currentTimeMillis disminuirá y el tiempo de espera en la última línea aumentará, lo que provocará que aumente el tiempo de espera y en los mensajes no reconocidos. Cola (tiempo de espera); método, se llamará el siguiente comando.
Mutex.wait(timeout) es un valor amplificado por la capa superior, lo que hace que el hilo muera y deje de recibir mensajes hasta que la hora del sistema vuelva a (tiempo antes del cambio + 60 s).
La solución no es usar timeout > 0 en consumer.receive(timeout), sino encapsularlo usted mismo, llame a consumer.receive(0) cada vez y luego agregue una capa de lógica para determinar el hora del sistema.
Otra solución es ir al sitio web oficial para detectar un error. . . . . Está bien, hagámoslo mañana. .