Vielleicht, oder etwas anderes, das den Digest leer macht und ihn somit nicht an die Benutzer sendet.
Ich weiß nicht, wie ein Digest erstellt wird. Ich weiß nicht, ob er Kategorien berücksichtigt, die vom Benutzer ignoriert werden, oder ähnliches.
Ich nehme an, Ihre Benutzer erhalten den Digest nicht, wenn Sie ihn manuell über die Rails-Konsole senden?
user = User.find_by(username: 'user-name')
Jobs.enqueue(:user_email, type: :digest, user_id: user.id)
Ein paar Sekunden nach der Ausführung dieses Befehls sollten Sie sehen, wie die verarbeiteten Jobs von Sidekiq um 1 gestiegen sind. Wenn Sie jedoch ein großes Forum haben, kann es jederzeit viele Sidekiq-Jobs geben, sodass es schwierig sein kann zu erkennen, ob sie gestiegen sind.
Sie können die Live-Umfrage-Schaltfläche verwenden, um sie in Echtzeit anzuzeigen:
Aus meinen Tests: Wenn ich das Rails-Skript ausführe, um den Digest an einen Benutzer zu senden, der Digest aber leer ist:
- weil der Benutzer ihn bereits erhalten hat
- oder E-Mail-Zusammenfassungen in seinem Profil deaktiviert hat
- usw.
Dann erhöht sich die Anzahl der verarbeiteten Sidekiq-Jobs um eins, aber es wird keine E-Mail gesendet und es gibt keinen neuen Eintrag unter /admin/email/sent.
Vielleicht könnten Sie die verarbeiteten Sidekiq-Jobs protokollieren, um zu sehen, ob es darin Hinweise gibt. Ich habe ein wenig gesucht, bin mir aber nicht sicher, ob standardmäßig protokolliert wird, welche Jobs verarbeitet wurden.
Ich glaube, es gibt eine logische, gute Erklärung dafür, warum die Benutzer den Digest nicht erhalten. Der Job wird möglicherweise verarbeitet, aber der Digest ist möglicherweise leer, was erklären würde, warum keine Spur davon vorhanden ist.
Ich würde die Einstellungen aller betroffenen Benutzer, ihre Benachrichtigungsstufen, ihre verfolgten Kategorien und ähnliches noch einmal gründlich überprüfen.