Cron & Hintergrundverarbeitung
PrimoCRM erledigt die gesamte rechenintensive Arbeit im Hintergrund: Kampagnenversand, Sequenz-Drips und Automatisierungsschritte werden von geplanten Workern verarbeitet, niemals im Seitenaufruf. Diese Worker laufen über den WordPress-Cron, weshalb ein zuverlässiger Cron dafür sorgt, dass Ihre E-Mails pünktlich herausgehen. Diese Seite erklärt, wie das funktioniert und wie Sie ihn stabil einrichten.
Wie PrimoCRM den Cron verwendet
Abschnitt betitelt „Wie PrimoCRM den Cron verwendet“PrimoCRM registriert zwei benutzerdefinierte Zeitpläne und einen kleinen Satz von Hintergrund-Workern:
| Worker | Läuft | Aufgabe |
|---|---|---|
| E-Mail-Versand von Kampagnen | Nach Bedarf (nur solange eine Kampagne ausstehende E-Mails hat) | Liefert eine Kampagne in gedrosselten Chargen aus |
| Sequenzverarbeitung | Jede Minute | Sendet fällige Sequenz-E-Mails |
| Automatisierungsverarbeitung | Jede Minute | Führt Kontakte durch Automatisierungsschritte |
| Warteschlangen-Integritätsprüfung | Alle 5 Minuten | Stellt hängende E-Mails wieder her und startet ins Stocken geratene Kampagnen neu |
Jeder Worker beansprucht eine Charge von Arbeit, hält ein Zeitbudget ein, damit er niemals die Limits Ihres Hosters überschreitet, und plant sich selbst neu. Die 5-Minuten-Integritätsprüfung ist ein Sicherheitsnetz: Wenn ein Versand ins Stocken gerät, wird er beim nächsten Takt wieder in Gang gesetzt.
Warum ein zuverlässiger Cron wichtig ist
Abschnitt betitelt „Warum ein zuverlässiger Cron wichtig ist“WordPress wird mit einem Pseudo-Cron ausgeliefert, der nur dann ausgelöst wird, wenn jemand die Website besucht. Auf einer viel besuchten Website ist das in Ordnung. Auf einer Website mit geringem Verkehr können Stunden vergehen, ohne dass Besuche stattfinden, sodass geplante Sendevorgänge erst ausgeführt werden, wenn der nächste Besucher eintrifft. Das Symptom ist eine Kampagne, die auf “Wird gesendet” steht und sich langsam oder gar nicht entleert.
Die Lösung besteht darin, den durch Besucher ausgelösten Pseudo-Cron durch einen echten Cron zu ersetzen, der nach einem festen Zeitplan läuft, idealerweise jede Minute.
Prüfen, ob der Cron läuft
Abschnitt betitelt „Prüfen, ob der Cron läuft“- Öffnen Sie PrimoCRM, dann Einstellungen und suchen Sie nach dem System- oder Cron-Status, der anzeigt, ob die Worker geplant sind und wann sie zuletzt gelaufen sind.
- Oder installieren Sie ein Hilfsplugin wie WP Crontrol und vergewissern Sie sich, dass die Ereignisse
primocrm_process_sequences,primocrm_process_automationsundprimocrm_queue_health_checkvorhanden sind und ausgelöst werden.
Wenn eine Kampagne feststeckt und Ihre Website nur wenig Verkehr hat, ist fast immer der Cron die Ursache.
Einen echten Cron einrichten (empfohlen)
Abschnitt betitelt „Einen echten Cron einrichten (empfohlen)“Zwei Schritte: Schalten Sie den WordPress-Pseudo-Cron aus und fügen Sie dann einen echten Cron hinzu, der jede Minute läuft.
1. Den Pseudo-Cron deaktivieren
Abschnitt betitelt „1. Den Pseudo-Cron deaktivieren“Fügen Sie dies in die wp-config.php ein, und zwar oberhalb der Zeile “Das war’s, bitte nicht weiterbearbeiten”:
define( 'DISABLE_WP_CRON', true );Dies hindert WordPress daran, den Cron bei Seitenaufrufen auszulösen, sodass Ihr echter Cron der einzige Auslöser ist.
2. Jede Minute einen echten Cron hinzufügen
Abschnitt betitelt „2. Jede Minute einen echten Cron hinzufügen“Wählen Sie die Methode, die zu Ihrem Hosting passt.
WP-CLI (am besten, wenn Sie Shell-Zugriff haben):
* * * * * cd /path/to/wordpress && wp cron event run --due-now >/dev/null 2>&1PHP-Binärdatei (ebenfalls großartig bei Shell-Zugriff):
* * * * * php /path/to/wordpress/wp-cron.php >/dev/null 2>&1cPanel: Öffnen Sie Cron-Jobs, stellen Sie den Zeitplan auf jede Minute (* * * * *) ein und verwenden Sie einen der obigen Befehle mit dem vollständigen Pfad zu Ihrer Website.
Kein Shell-Zugriff (Shared Hosting)? Verwenden Sie einen kostenlosen Remote-Cron-Dienst wie cron-job.org, um Ihre Cron-URL über HTTP jede Minute aufzurufen:
https://yoursite.com/wp-cron.php?doing_wp_cronRegistrieren Sie sich bei dem Dienst, fügen Sie diese URL hinzu, stellen Sie das Intervall auf 1 Minute ein und speichern Sie. Dies ruft den WordPress-Cron von außen nach einem festen Zeitplan auf.
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“- Eine Kampagne steckt bei “Wird gesendet” fest. Fast immer liegt es am Cron. Vergewissern Sie sich, dass ein echter Cron jede Minute läuft und dass
DISABLE_WP_CRONgesetzt ist. Die 5-Minuten-Integritätsprüfung nimmt den Versand wieder auf, sobald der Cron läuft. - Automatisierungen oder Sequenzen laufen zu spät. Ihr Cron-Intervall ist zu lang, oder der Pseudo-Cron wartet auf Besucher. Wechseln Sie zu einem echten 1-Minuten-Cron.
- Es wird überhaupt nichts gesendet. Unabhängig vom Cron sollten Sie bestätigen, dass Ihre Sendemethode konfiguriert ist und eine Test-E-Mail ankommt. Der Cron steuert, wann die Arbeit läuft; der Mailer steuert, ob er zustellt.
- CPU-Limits von Shared Hostern. Die Worker verfügen über ein Zeitbudget und drosseln sich bei Last, sodass sie auf Shared Hosting sicher sind. Wenn sich Ihr Hoster dennoch beschwert, reduziert ein etwas längeres Intervall (2 bis 5 Minuten) die Häufigkeit auf Kosten der Pünktlichkeit.
Siehe auch Anforderungen für PHP- und Servervoraussetzungen sowie Versand und Zustellbarkeit für die Mailer-Seite.