Recientemente actualicé mi instancia de Docker de Discourse que se ejecuta en una EC2 de Ubuntu. Utilicé launcher rebuild para la actualización. Antes tenía la versión 2.4.0 y la actualicé a 2.6.0.beta1 (también volví a actualizar a 2.6.0.beta2). Estoy usando ElastiCache en lugar de Redis y funcionaba sin problemas antes de la actualización. Inmediatamente después de la actualización, noté que Sidekiq no estaba enviando correos electrónicos. Reinicié la aplicación y limpié la caché, y parecía que funcionaba, pero fue un falso positivo.
Indicadores observados de mal funcionamiento
- Sidekiq está programando y encolando trabajos a un ritmo razonablemente constante (según se indica en el panel de Sidekiq), pero no está ejecutando ninguno.
- La página de administración muestra un error indicando que Sidekiq no se está ejecutando.
- Los registros muestran varias instancias de
Sidekiq heartbeat test failed, restarting. - Por supuesto: los correos electrónicos no se están enviando a los usuarios.
Cosas que he intentado (después de leer publicaciones aquí y en Stack Overflow)
- Envié con éxito un correo de prueba con
discourse-doctorpara verificar que esa parte del flujo funciona. - Verifiqué en el panel de Sidekiq que el pie de página muestra la instancia de ElastiCache correcta .
- Verifiqué que los registros de Docker no indiquen ningún error (
ok: run: redis: (pid XX) 0s). - Limpié la caché y reinicié Discourse (
./launcher restart app). - Detuve la aplicación, limpié la caché y volví a iniciarla.
- Volví a reconstruir la aplicación.
Pasos que no he intentado
- Crear una nueva instancia de ElastiCache.
- Desactivar esta instalación y crear una nueva desde cero.
¿Alguien ha experimentado esto y tiene alguna sugerencia?
¿Hay algún registro que me haya perdido?
¿Existe alguna manera de forzar a Sidekiq a procesar sus trabajos?