Sidekiq, mit ElastiCache, verarbeitet seit Discourse-Upgrade keine queued Jobs

Ich habe kürzlich meine Discourse-Docker-Instanz auf einem Ubuntu EC2-Server aktualisiert. Für das Upgrade habe ich launcher rebuild verwendet. Zuvor war Version 2.4.0 installiert, ich habe auf 2.6.0.beta1 (und anschließend noch einmal auf 2.6.0.beta2) aktualisiert. Ich verwende anstelle von Redis ElasticCache, was vor dem Upgrade problemlos funktioniert hat. Unmittelbar nach dem Upgrade stellte ich fest, dass Sidekiq keine E-Mails mehr versendet. Ich habe die App neu gestartet und den Cache geleert, und es schien zunächst zu funktionieren, aber das war ein falscher Alarm.

Beobachtete Anzeichen einer Fehlfunktion

  • Sidekiq plant und stellt Jobs in einer relativ konstanten Geschwindigkeit in die Warteschlange (wie im Sidekiq-Dashboard angezeigt), führt sie jedoch nicht aus.
  • Die Admin-Seite meldet, dass Sidekiq nicht läuft.
  • In den Logs erscheinen mehrere Einträge: Sidekiq heartbeat test failed, restarting.
  • Selbstverständlich: E-Mails werden nicht an Benutzer versendet.

Maßnahmen, die ich bereits ergriffen habe (nach dem Lesen von Beiträgen hier und auf Stack Overflow)

  • Erfolgreicher Versand eines Test-E-Mails mit discourse-doctor, um zu überprüfen, dass dieser Teil des Ablaufs funktioniert.
  • Überprüfung im Sidekiq-Dashboard, dass die Fußzeile die korrekte ElasticCache-Instanz anzeigt .
  • Überprüfung, dass die Docker-Logs keine Fehler anzeigen (ok: run: redis: (pid XX) 0s).
  • Cache geleert und Discourse neu gestartet (./launcher restart app).
  • App gestoppt, Cache geleert, App neu gestartet.
  • App erneut neu aufgebaut.

Schritte, die ich noch nicht versucht habe

  • Eine neue ElasticCache-Instanz erstellen.
  • Diese Installation stilllegen und eine saubere Installation erstellen.

Hat jemand Ähnliches erlebt und hat Vorschläge?
Gibt es Logs, die ich übersehen habe?
Gibt es eine Möglichkeit, Sidekiq dazu zu bringen, seine Jobs zu verarbeiten?

Irgendwann begann Discourse Redis 5 zu erfordern. Welche Redis-Version unterstützt Ihrer Meinung nach Ihr ElastiCache? Ich dachte, es gäbe eine klare Meldung in den Logs, aber das könnte falsch sein.

Ich werde meine Website, die ElastiCache verwendet, überprüfen, um sicherzugehen, dass ich keine Probleme habe. Ich bin ziemlich sicher, dass diese Website ElastiCache nutzt.

Das ist eine hilfreiche Information, danke. Ich nutze Version 3 von Redis, also werde ich heute Abend wahrscheinlich ein Update durchführen.

Ich dachte, es gäbe eine klare Meldung in den Logs.

Es besteht auch die deutliche Möglichkeit, dass ich nicht die richtigen Logs überprüfe. Weder /logs noch ./launcher logs app geben irgendeinen Hinweis darauf, also gibt es vielleicht noch einen anderen Ort, den ich überprüfen sollte?

/var/discourse/shared/logs/rails/production.log

wenn mein Gedächtnis und meine Finger funktionierten.

Fast richtig. Ich habe es hier gefunden:

/var/discourse/shared/web-only/log/rails/production.log

Die Meldung war sehr klar, sobald ich sie gefunden hatte :+1:t2::

You are connecting to Redis v3.2.10, Sidekiq requires Redis v4.0.0 or greater

Ich habe auf Redis 5 aktualisiert, und es hat meine zurückgestaute Warteschlange verarbeitet. Jetzt ist alles in Ordnung! Danke!