Newsletter Plugin - Cronjob zum Laufen bringen

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
achiboy
Beiträge: 138
Registriert: Do 26. Aug 2004, 05:05
Kontaktdaten:

Newsletter Plugin - Cronjob zum Laufen bringen

Beitrag von achiboy » Do 24. Nov 2022, 06:12

Hallo zusammen
Ich habe das Newsletter Plugin in Betrieb genommen und gemerkt, dass der Cronjob nicht läuft.
Meines Erachtens müsste da folgende Änderung gemacht werden (bei mir läuft es jetzt jedenfalls):

Datei: contenido/cronjobs/run_newsletter_job.php

alt:

Code: Alles auswählen

// CONTENIDO startup process
include_once($contenidoPath . 'includes/startup.php');

if (class_exists('NewsletterJobCollection') && (!isRunningFromWeb() || function_exists('runJob') || $area == 'cronjobs')) {
neu:
alt:

Code: Alles auswählen

// CONTENIDO startup process
include_once($contenidoPath . 'includes/startup.php');

$backendPath = cRegistry::getBackendPath();
include_once($backendPath . 'plugins/newsletter/includes/config.plugin.php');

if (class_exists('NewsletterJobCollection') && (!isRunningFromWeb() || function_exists('runJob') || $area == 'cronjobs')) {
1. Würdet ihr diese Änderung bitte übernehmen, falls sie korrekt ist?
2. Wie kann ich mitarbeiten, damit ich solche Anpassungen selber einpflegen kann?

Beste Grüsse aus der Schweiz

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Newsletter Plugin - Cronjob zum Laufen bringen

Beitrag von Faar » Do 24. Nov 2022, 18:05

Hallo Achiboy,
das Newsletterplugin wird vermutlich nur einen Pseudocron starten können, also einen Chronjob, der nur läuft, wenn jemand die Webseite besucht.
Falls da kaum Besucher sind, läuft auch das PHP nicht und somit werden auch keine Newsletter in der Zeit rausgehauen.

Man muss das Newsletter-Cronjob Programm* in eine echte Crontab eintrage, der vom Server aus verwaltet wird und die eingetragenen Programme pünktlich startet.
Dazu muss man einiges Wissen, wie man das einrichtet. Manche Hoster haben echte Cronjobs im Angebot und bieten da Hinweise oder sogar eine Bedienoberfläche, ansonsten muss man etwas in Linux eintauchen.
https://www.linuxwiki.de/crontab

*ich weiß gerade nicht, welches PHP-Programm des Newsletters dafür zuständig ist und im Backend von Contenido gibts die Möglichkeit, sich Cronjobs einzutragen und laufen zu lassen.

Gruß,
Faar
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

achiboy
Beiträge: 138
Registriert: Do 26. Aug 2004, 05:05
Kontaktdaten:

Re: Newsletter Plugin - Cronjob zum Laufen bringen

Beitrag von achiboy » Sa 26. Nov 2022, 07:35

Ich habe mich vielleicht missverständlich ausgedrückt.

Der Job läuft nicht, weil das if-Statement niemals true gibt.
Die Klasse "NewsletterJobCollection" wird ohne den Include, den ich ergänzt habe, nicht gefunden.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletter Plugin - Cronjob zum Laufen bringen

Beitrag von xmurrix » Mi 30. Nov 2022, 16:51

Hallo achiboy,

in welchem Kontext werden die Cronjobs ausgeführt, Web (Frontend/Backend) oder CLI?

In CONTENIDO wird die Datei "functions.includePluginConf.php" in allen wichtigen Bereichen im Frontend/Backend eingebunden und sie sorgt dafür, dass alle aktiven Plugins samt Konfiguration geladen werden.

Der Cronjob "run_newsletter_job.php" ist aber nicht in der Crontab (crontab.txt), hast du das hinzugefügt oder verwendest du ein eigenes Skript zum Ausführen der "run_newsletter_job.php"?

Gru0

xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

achiboy
Beiträge: 138
Registriert: Do 26. Aug 2004, 05:05
Kontaktdaten:

Re: Newsletter Plugin - Cronjob zum Laufen bringen

Beitrag von achiboy » Fr 2. Dez 2022, 16:05

Ok, das erstaunt mich. Ich habe den Job im Crontab eingetragen. Als ich den Newsletter als Cron aufgab, passierte gar nichts. Dann implementierte ich meine Änderung. Nachher lief alles.

Antworten