Cron Jobs

Cron Jobs

Ihre Mautic-Formulare, Landingpages und Kampagnen-E-Mails funktionieren einwandfrei, aber trotzdem passiert nichts? Überprüfen Sie doch einmal, ob alle Cron Jobs korrekt gesetzt sind!

Verwendung von Cron Jobs in Mautic

Cron ist ein zeitbasierter Job-Scheduler. Cron plant Jobs (Befehle oder Shell-Scripts) so, dass sie zu festgelegten Zeiten, Daten oder Intervallen ausgeführt werden.

Mautic benötigt diverse Cron Jobs, um Kontakte, Kampagnen und Kampagnen-Aktionen zu aktualisieren. Mautic verwendet außerdem optional auch Cron Jobs, um Emails zu senden und andere damit verbundene Aufgaben auszuführen.

Bei den meisten Web Hosts können Sie Cron Jobs hinzufügen, meist mit Hilfe von SSH, cPanel oder eines anderen individuellen Panels. Sollten Sie unsicher darüber sein, wie man Cron Jobs korrekt implementiert, setzen Sie sich bitte mit dem jeweiligen Host in Kontakt. Falls Cron Jobs oder Linux völlig neu für Sie sind, finden Sie hierfür bei der Apache Foundation einen hervorragende Anleitung.

Sie können frei entscheiden, wie oft Sie Cron Jobs nutzen. Beachten Sie aber: Viele Shared Hosts bevorzugen es, wenn die Scripts nur etwa alle 15 bis 30 Minuten ausgeführt werden. Teilweise müssen Sie sogar damit rechnen, dass der Host deswegen Ihre Einstellungen überschreibt. Sollten Ihnen solche Beschränkungen auffallen, kontaktieren Sie am besten Ihren Host direkt.

Es wird unbedingt empfohlen, dass Sie die Cron Jobs gestaffelt ausführen lassen, damit nicht alle gleichzeitg stattfinden. Das kann das System überfordern.

Man könnte die Cron Jobs z.B. zeitlich wie folgt staffeln:

  • 0,15,30,45 <— mautic:segments:update
  • 10,25,40,55 <— mautic:campaigns:update
  • 5,20,35,50 <— mautic:campaigns:trigger

Unbedingt erforderliche Cron Jobs

Cron Jobs für Segmente

Updates für Segmente: php /path/to/mautic/app/console mautic:segments:update

Standardmäßig bearbeitet das Script Kontakte in Paketen von 300. Sollte sich dies als zu groß für die Kapazitäten des von Ihnen genutzten Servers herausstellen, benutzen Sie bitte folgenden Befehl: –batch-limit=X (Ersetzen Sie das X mit der Anzahl der Kontakte, die pro Paket zu bearbeiten sind.)

Bei Bedarf können Sie die Anzahl der verarbeiteten Kontakte pro Script auch weiter einschränken, indem sie den Befehl -–max-contacts nutzen.

Cron Jobs für Kampagnen

Um Kampagnen mit Kontakten regelmäßig zu aktualisieren, nutzen Sie folgenden Befehl:

php /path/to/mautic/app/console mautic:campaigns:rebuild

Standardmäßig bearbeitet das Script auch hier Kontakte in Paketen von 300. Sollte sich dies als zu groß für die Kapazitäten des von Ihnen genutzten Servers herausstellen, benutzen Sie bitte folgenden Befehl: –Paket-limit=X (Ersetzen Sie das X mit der Anzahl der Kontakte, die pro Paket zu bearbeiten sind.)

Bei Bedarf können Sie die Anzahl der verarbeiteten Kontakte pro Script auch weiter einschränken, indem sie den Befehl -–max-contacts nutzen.

Kampagnen-Events per Cron Job auslösen

php /path/to/mautic/app/console mautic:campaigns:trigger

Standardmäßig bearbeitet das Script Kontakte in Paketen von 100. Sollte sich dies als zu groß für die Kapazitäten des von Ihnen genutzten Servers herausstellen, benutzen Sie bitte folgenden Befehl: –Paket-limit=X (Ersetzen Sie das X mit der Anzahl der Kontakte, die pro Paket zu bearbeiten sind.)

Darüber hinaus können Sie die der bearbeiteten Events pro Arbeitsgang auch einschränken, indem sie den Befehl -–max-contacts nutzen.

Versenden von Kampagnen-Marketing-E-Mails, bei denen Häufigkeitsregeln gesetzt sind

Nachrichten, die als „Marketing Messages“ markiert sind (beispielsweise Emails, die als Teil einer Marketing-Kampagne sind), werden in eine Message Queue eingefügt. Um diese Queue zu starten und ggf. das Absenden der Nachrichten zu verzögern, sollten Sie den folgenden Cron Job zu ihrer Liste hinzufügen: mautic:messages:send

Beachten Sie: Das System kann die Nachrichten nur dann der Queue zuordnen, wenn Häufigkeitsregeln für das gesamte System oder für alle Kontakte gesetzt wurden.

Optionale Cron Jobs

Die Email-Queue bearbeiten

Sollten Sie das System so konfiguriert haben, dass es die Emails im Dateisystem zwischenspeichert, benötigen Sie hierfür Cron Jobs:

php /path/to/mautic/app/console mautic:emails:send

Überwachte Emails sammeln und bearbeiten

Dieser Cron Job ist nur notwendig, wenn Sie das Bounce Management System benutzen:

php /path/to/mautic/app/console mautic:email:fetch

Social Monitoring

Dieser Cron Job ist nur notwendig, wenn Sie Social Monitoring benutzen:

php /path/to/mautic/app/console mautic:social:monitoring

Webhooks

Sollte Mautic so eingestellt sein, dass es Webhooks in Paketen (Batches) versendet, dann benutzen Sie den folgenden Befehl, um die Payloads zu senden:

php /path/to/mautic/app/console mautic:webhooks:process

MaxMind GeoLite2 IP Datenbank aktualisieren

Mautic benutzt standardmäßig die MaxMind GeoLite2 IP Datenbank. Diese Datenbank ist lizenziert als „Creative Commons Attribution-ShareAlike 3.0 Unported License“. Darum kann sie nicht zusammen mit Mautic in einem Paket angeboten werden. Sie können die Datenbank manuell über das Mautic-Konfigurationmenü herunterladen.

Durch den folgenden Cron Job können Sie die Datenbank zudem automatisch auf neuestem Stand halten:

php /path/to/mautic/app/console mautic:iplookup:download (MaxMind aktualisiert seine Datenbank normalerweise jeden ersten Dienstag des Monats)

Daten bereinigen

Sie können Ihre Mautic Instatallation aufräumen, indem Sie alte Daten löschen. Dies funktioniert nicht für alle Daten - unterstützt werden aber z.B. : Audit Logs Entries, Besucher (anonyme Kontakte) und Besucherzahlen per Seite. Verwenden Sie –dry-run, um zu sehen, welche und wie viele Daten gelöscht werden können.

Achtung: Durch diese Aktion gehen Ihnen die Daten permanent verloren! Legen Sie darum immer Backups an.

php /path/to/mautic/app/console mautic:maintenance:cleanup –days-old=365 –dry-run

Planmäßiges Senden von Nachrichten

Sie können Cron Jobs verwenden, um geplante Nachrichten zu senden.

Zur Zeit sind Emails das einzige zur Verfügung stehende Medium, um Nachrichten in Marketingkanälen zu versenden. Sie können theoretisch einen manuellen Befehl nutzen und dann mit geöffnetem Browserfenster darauf warten, dass Ajax die Daten übermittelt - oder einfach einen Cron Job nutzen.

Das einzige Manko besteht darin, dass die Emails veröffentlicht sein müssen und über ein Veröffentlichungsdatum verfügen müssen. Das ist wichtig, um das unbeabsichtigte Versenden von Emails zu verhindern.

Ebenso wie beim manuellen Vorgehen / Ajax-Prozessen, können Sie auch hier nur Kontakte kontaktieren, die bereits eine solche Nachricht von Ihnen bekommen haben. Achtung: Der folgende Befehl wird auch Nachrichten an Kontakte senden, die erst später zu den Quell-Segmenten hinzugefügt werden. Wenn Sie dies nicht möchten, senden Sie bitte auch ein unpublish-Datum.

php /path/to/mautic/app/console mautic:broadcasts:send [–id=ID] [–channel=CHANNEL]

Anmerkung: Für Mautic-Versionen, die älter sind als 1.1.3, ist es notwendig –env=prod an den Cron Job-Befehl anzuhängen, um sicherzustellen, dass der Befehl korrekt funktioniert

Parameter:

  • –batch=X : Legt fest,wie viele Emails auf einmal gesendet werden können. Dies kannn je nach Provider sehr unterschiedlich sein.

  • –channel=email : Legt fest, welcher Kanal verwendet werden soll. Wenn kein Kanal festgelegt wird, werden alle verwendet.

  • –id=X : Legt fest, welche ID der Email, SMS, etc. gesendet wird

  • –limit=X : Legt fest, wie viele Kontakte aus der Datenbank gezogen werden (Grundeinstellung: 100). So erhalten x Kontakte ihre E-Mails, wenn dieser Befehl ausgelöst wird. Das nächste Mal, wenn der Kontakt ausgeführt wird, sind es die nächsten x Kontakte usw.

  • –min-contact-id and –max-contact-id : Hiermit kann man den Email-Versand in kleinere Teile aufteilen, aufgeteilt nach Kontakt-ID-Bereichen. Wenn diese Bereiche sich nicht überlappen, können mehrere Broadcast-Befehle parallel ausgeführt werden.

  • –segment-id=X : X ist ein Filter. Nur Kontakte von Segment-ID = X erhalten die E-Mail. Selbst wenn eine E-Mail das Segment X und Y enthält, wird sie nur an Kontakte von Segment X gesendet.

Typische Fehler beim Einrichten von Cron Jobs

Wenn Ihre Systemumgebung einen Kommandozeilen-spezifischen Build von PHP (oft php-cli) bereitstellt, könnem Sie diesen anstelle von PHP verwenden, da er eine sauberere Ausgabe hat. Auf Bluehost (und wahrscheinlich einigen anderen PHP-Hosts) könnte der php-Befehl allerdings so eingerichtet sein, dass er die Befehlszeilenparameter für die Konsole verwirft. In diesem Fall müssen Sie php-cli verwenden, damit die Cron-Jobs funktionieren.

Um Cron Probleme zu analysieren, können Sie die Ausgabe jedes Cron Jobs in eine Datei leiten, indem Sie am Ende des Cron Jobs beispielsweise > /path/to/meineDatei.log 2> & 1 hinzufügen.

Dann können Sie sich den Inhalt dieser Datei ansehen. Wenn während der Ausführung des Cron Jobs ein Fehler auftritt, wird man dies dort sehen, anderenfalls ist die Datei leer oder enthält nur Statistiken.

Die Änderungszeit der Datei informiert Sie über die letzte Ausführung des Cron Jobs. Auf diese Weise können Sie herausfinden, ob der Cron-Job erfolgreich und planmäßig ausgeführt wird. Zusätzlich wird empfohlen, den nicht interaktiven Modus zusammen mit dem No-Ansi-Modus zu aktivieren, wenn Sie Ihre Befehle mit cron ausführen. Auf diese Weise stellen Sie sicher, dass Sie korrekte Time Stamps in Ihrem Protokoll haben und die Ausgabe lesbarer ist.

Datei-Output (Beispiel):


 $ php app/console mautic:segments:update --no-interaction --no-ansi
 
 [2018-09-12 10:29:32] Rebuilding contacts for segment 1
 
 [2018-09-12 10:29:32] 0 total contact(s) to be added in batches of 300
 
 [2018-09-12 10:29:32] 0 total contact(s) to be removed in batches of 300
 
 [2018-09-12 10:29:32] 0 contact(s) affected

Mautic-Support gewünscht?

Wir bieten Ihnen professionellen Service und Support rund um Mautic.

Bei uns erhalten Sie Kampagnen, Beratung, Support und Managed Mautic Server.

Jetzt das Support-Angebot ansehen!