¿Cómo iniciar, detener y volver a conectar los contenedores de escucha spring rabbitmq y sus conexiones?

Tengo una conexión a Internet donde la puerta de enlace de salida cambia periódicamente. Recibo un evento o una notificación de devolución de llamada para mi aplicación de primavera unos segundos antes de que esto suceda. Me gustaría detener a mis consumidores y conexiones de conejo y volver a conectar después de unos segundos (cuando mi conexión de red esté de vuelta).

Estoy usando el enfoque basado en anotaciones de spring amqp pero también podría cambiar a otro tipo de implementación.

Sé que spring-amqp me está reconectando, pero me gustaría hacerlo solo para tener más control sobre él. ¿Cómo puedo hacer programáticamente una parada limpia de todos los consumidores (RabbitListeners) y también una desconexión limpia del corredor de rabbitmq y nuevamente una conexión y un inicio limpios de todos los consumidores? Estaría bien si los consumidores fueran recreados. Si esto no es posible, tendría que reinicializar algunos atributos de objeto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta