Zuallererst ja, dies ist eine weitere Frage / ein weiteres Thema zur 1.9.1-E-Mail-Warteschlange. Es geht aber nicht um irgendwelche Cron-Probleme (wie dieses oder jenes ) oder darum, dass die neue Warteschlangenfunktion nicht verwendet wird (wie dieses ).
In unserem Fall hatten wir das Problem, dass die Warteschlange ( core_email_queue
und core_email_queue_recipients
) einfach keine E-Mails zu neuen Bestellungen oder Auftragsaktualisierungen mehr bekam und daher keine E-Mails mehr für irgendetwas mit Bezug auf die Bestellung verschickt wurden. Außerdem funktioniert cron perfekt und fügt E-Mails manuell hinzu Die Warteschlange funktioniert und sie werden versendet.
Das Seltsame ist, dass in unserer Testumgebung alles funktioniert hat. Selbst als wir heute in den ersten Minuten online gingen, wurden alle E-Mails verarbeitet, aber nach einigen Minuten (natürlich ohne weitere Änderungen im Live-System) wurden überhaupt keine neuen E-Mails mehr in die Warteschlange aufgenommen. Es scheint, als wäre dies passiert (aber ich kann es nicht genau sagen), als der erste Kunde PayPal Express verwendet hat, was wir vorher nicht getestet haben: - / Und tatsächlich haben wir einige benutzerdefinierte Überschreibungen in der PayPal Express-Logik mit der alten sendNewOrderEmail()
Funktion verwendet. Aber wir konnten E-Mails nicht wieder zum Laufen bringen, selbst nachdem wir diese für die Verwendung gepatcht hatten queueNewOrderEmail()
.
Die erste Frage wäre also, ob es möglich ist, dass die alte Funktion eine Inkonsistenz auslöst, die "kaputt geht". die E-Mail-Warteschlange? Oder ist das alles nur ein großer Zufall und es gibt eine ganz andere Erklärung?
Da wir das Problem nicht finden konnten, aber natürlich E-Mails brauchten, um so schnell wie möglich wieder funktionieren zu können, entschieden wir uns für einen weiteren Core-Override. In Mage_Core_Model_Email_Template_Mailer
(natürlich in einer Kopie in local
) haben wir Zeile 76 ->setQueue($this->getQueue())
auskommentiert : Dies scheint die Warteschlange zu umgehen und alle Mails werden wieder auf die alte Weise gesendet.
Da wir jedoch die Anzahl der Core-Overrides auf ein Minimum beschränken möchten, können wir derzeit auch nicht sagen, ob wir anderen Nebenwirkungen, anderen Tipps oder Lösungen von Personen mit einem tieferen Verständnis des Magento-Codes und des Magento-Codes gegenüberstehen E-Mail-Warteschlange wäre dankbar.
Update für 1.9.2: Beim Upgrade auf 1.9.2 haben wir uns die E-Mail-Warteschlange noch einmal genauer angesehen und konnten das Problem nicht reproduzieren. Da wir jedoch immer noch keine wirkliche Ahnung haben, wo das Problem mit 1.9.1 lag, und das Überschreiben Mage_Core_Model_Email_Template_Mailer::send()
immer noch auf die hier beschriebene Weise funktioniert, verwenden wir die Warteschlange immer noch nicht. Auf diese Weise hoffen wir, dass wir nach einiger Zeit in der Produktion nicht mehr auf dasselbe Problem stoßen.
tl; dr: Die E-Mail-Warteschlange funktioniert in 1.9.1 nicht. Wenn Sie Zeile 76 in auskommentieren, wird Mage_Core_Model_Email_Template_Mailer
die E-Mail-Warteschlange umgangen und die E-Mails werden erneut gesendet, aber dies scheint keine gute Lösung zu sein. Wie kann das besser gelöst werden?
core
usw. vorgenommen, um sicherzustellen, dass alles, was nicht angepasst ist oder eine Erweiterung vorhanden ist, und unverändert und es ist). Berechtigungen stimmen mit den alten Einstellungen überein und Protokolle / Berichte sind sauber.
core_email_queue_send_all
, dass es auch jede Minute ausgeführt wird und von wo aus wir sehen, dass es tatsächlich ausgeführt wird.
exception.log
oder möglicherweisesystem.log
gibt es dort irgendwelche Hinweise?