Contao-Camp 2024
Ergebnis 1 bis 23 von 23

Thema: Forumsbenachrichtigung funktioniert nicht per CronJob

  1. #1
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard Forumsbenachrichtigung funktioniert nicht per CronJob

    Nach der Migration unserer Site gynamed.net funktioniert die Forumsbenachrichtigung nur noch, wenn wir uns im Backend anmelden.
    Obwohl wir einen Scheduler-Job eingerichtet haben, der alle 5 Minuten /system/modules/helpdesk/HelpdeskNotify.php aufruft und einen 'echten' CronJob, der alle 5 Minuten /system/cron/cron.php aufruft, wird die Forumsbenachrichtigung bei neuen Postings im FE nicht ausgelöst. Wenn ich probeweise den CronJob die HelpdeskNotify.php aufrufen lasse, steht im Protokoll 'You can not access this file directly!'

    Da wir uns nicht unbedingt alle 5 Minuten am BE anmelden, um die Benachrichtigungen zu triggern, frage ich mich, wie ich das mit einem CronJob wieder hinkriege. Hat früher ja auch funktioniert.

    Viele Grüße,
    Lutz

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Zitat Zitat von LutzWinkler Beitrag anzeigen
    Obwohl wir einen Scheduler-Job eingerichtet haben, der alle 5 Minuten /system/modules/helpdesk/HelpdeskNotify.php aufruft
    Das funktioniert auf jeden Fall nicht, da diese Datei nichts ausführt, bzw. ausführen kann.


    Zitat Zitat von LutzWinkler Beitrag anzeigen
    und einen 'echten' CronJob, der alle 5 Minuten /system/cron/cron.php aufruft
    Wie sieht dieser cronjob aus?

  3. #3
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    siehe Screenshot:
    cronjob.PNG

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Verwende statt dessen lieber mal "HTTP Aufruf per URL".

  5. #5
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Hab ich gemacht. CronJob verweist jetzt auf http://gynamed.net/system/cron/cron.php
    HelpdeskNotification wurde nicht ausgeführt. Übrigens auch nicht, wenn ich die obige Adresse direkt im Browser eingebe (dann erscheint nur eine weiße Seite).

    Das ist das Ausgabeprotokoll des Cronjobs:
    Zuletzt ausgeführt: 24.05.2016 um 12:44

    HTTP/1.1 200 OK
    Date: Tue, 24 May 2016 10:44:06 GMT
    Server: Apache/2.4.10
    X-Powered-By: PHP/5.5.28
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: PHPSESSID=82388185b42f184e2b5e12cb977be8f6; path=/; HttpOnly
    Content-Length: 0
    Connection: close
    Content-Type: text/html
    Nachtrag: Datei cron.txt wird übrigens von cron.php aktualisiert. Inhalt: 1464087120
    Geändert von LutzWinkler (24.05.2016 um 12:54 Uhr)

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Zitat Zitat von LutzWinkler Beitrag anzeigen
    (dann erscheint nur eine weiße Seite)
    Das ist normal.


    Zitat Zitat von LutzWinkler Beitrag anzeigen
    Nachtrag: Datei cron.txt wird übrigens von cron.php aktualisiert. Inhalt: 1464087120
    Dann wurde der Cron ausgeführt. Jetzt kommt es darauf an, in welchem Interval die Notifications von Helpdesk versendet werden.

  7. #7
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Der Contao-Scheduler wird alle 5 Minuten ausgeführt:
    scheduler.PNG
    Der Scheduler-Job verweist auf /system/modules/helpdesk/HelpdeskNotify.php
    Wenn ich http://gynamed.net/system/modules/he...deskNotify.php im Browser aufrufe, bekomme ich die Meldung "You can not access this file directly!"

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Zitat Zitat von LutzWinkler Beitrag anzeigen
    Der Contao-Scheduler wird alle 5 Minuten ausgeführt:
    scheduler.PNG
    Da hast du mich falsch verstanden. Laut deinen Ausführungen wird der Contao Cronjob nun korrekt angestoßen. Nun hängt es davon ab, in welchem konfigurierten Interval die helpdesk Extension die Notifications verschickt. Normalerweise ist das in der config.php einer Extension definiert. In https://github.com/katgirl/contao-he...fig/config.php kann ich aber nichts davon finden.


    Zitat Zitat von LutzWinkler Beitrag anzeigen
    Der Scheduler-Job verweist auf /system/modules/helpdesk/HelpdeskNotify.php
    Wie ich hier schon erwähnt habe funktioniert das nicht. Diese Datei enthält keinen Code, der so ausgeführt werden könnte. Darüberhinaus enthält diese PHP Datei außerdem eine zusätzliche Absicherung für das direkte ausführen, wie du hier schon selbst bemerkst:
    Zitat Zitat von LutzWinkler Beitrag anzeigen
    Wenn ich http://gynamed.net/system/modules/he...deskNotify.php im Browser aufrufe, bekomme ich die Meldung "You can not access this file directly!"

  9. #9
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Welche Datei triggert denn nun den Benachrichtigung - und welche führt sie aus???
    Meine config.php sieht übrigens genau so aus, wie die von dir verlinkte.

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    HelpdeskNotifyExec.php ist die richtige Datei.

  11. #11
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Habe jetzt folgende Einstellungen getestet:
    Die Benachrichtigungen werden nach wie vor nicht verschickt.
    Wenn ich im Browser http://gynamed.net/system/modules/he...NotifyExec.php eingebe, werde ich zur Anmeldung im BE weitergeleitet.

    Was ich nicht kapiere: wenn ich schon einen 'echten' CronJob habe, warum kann ich mit dem nicht direkt die Forumsbenachrichtigung anstoßen, sondern muss den 'Umweg' über den Contao-Scheduler nehmen???
    Da die Forumsbenachrichtigung nach der Anmeldung im BE ja problemlos funktioniert, frage ich mich, ob das ganze nicht ein Rechteproblem sein könnte? Welches Skript wird denn nach der Anmeldung im BE aufgerufen?

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Was meinst du mit Contao Scheduler?

  13. #13
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    "Ein Cron-ähnliches Scheduler-Modul für Contao" von bugbuster/contao-cron
    Siehe Screenshot

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Ok, das ist natürlich wiederum ganz was anderes. Soweit ich mich erinnere hat diese Erweiterung nichts mit den regulären Cronjobs von Contao zu tun. Lies' dir hierzu mal den Wiki Eintrag durch: http://de.contaowiki.org/Cron

    Du solltest solche Dinge übrigens gleich im ersten Post genauer erwähnen

  15. #15
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Die Dokus kenne ich. Die Cron-Erweiterung ist ursprünglich von Peter Koch für die Benachrichtigungsfunktionen von Forum/Helpdesk entwickelt worden. Das hat bis TL 2.7 auch prima funktioniert. Nach den letzten Updates (inzwischen TL 3.4) haben schon mehrere Contao-Fachleute (Carolina Koehn, Mark Reimann) vergeblich versucht, die Funktion wiederzubeleben.

    Ich hab mir jetzt einen Workaround eingerichtet: auf einem Rechner, der die meiste Zeit online ist, läuft ein kleines Skript, das sich alle 5 Minuten am Backend anmeldet. Damit wird die Benachrichtigung bei neuen Forumseinträgen zuverlässig ausgelöst. Eleganter wäre es natürlich, das direkt mit einem CronJob zu machen. Nur dazu müsste ich halt wissen, welche PHP-Skripte aufgerufen werden müssen.

  16. #16
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Zeig mal einen Screenshost von deiner Cron Job Konfiguration (der Cron Extension) für die system/modules/helpdesk/HelpdeskNotifyExec.php

    Wenn du das richtig konfiguriert hast, musst du auf deinem Server nur mehr einen Cronjob einrichten, der http://gynamed.net/system/modules/cr...Controller.php aufruft. Allerdings kommt da momentan ein 404 Fehler - welche Version von BugBuster1701/contao-cron verwendest du?

  17. #17
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Hier nochmal der Screenshot
    Und hier die Konfiguration cronjob.PNG
    Die Version von bugbuster/contao-cron ist 3.3.2

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Wie gesagt, http://gynamed.net/system/modules/cr...Controller.php gibt einen Fehler, das musst du untersuchen. Ansonsten wird dein cronjob nichts bringen.

  19. #19
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Die Datei CronFeController.php gibt es gar nicht! Dafür aber CronController.php. Und die löst keinen Fehler aus.

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Die gibt es erst ab Version 3.3.3. Aktualisiere die Extension und richte den cronjob im crontab deines Servers entsprechend der Anleitung ein.

  21. #21
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Daumen hoch

    That's it! It finally works!!!!

    Ganz herzlichen Dank für deinen Rat und deine Geduld!

    Viele Grüße und schönes Wochenende,
    Lutz Winkler

  22. #22
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.477
    User beschenken
    Wunschliste

    Standard

    Puh, dachte schon da ist immer noch ein Bug drin...
    Ja, die CronFeController.php ist ganz neu, musste ich vor kurzem etwas umbauen wegen BackupDB :-)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  23. #23
    Contao-Nutzer Avatar von LutzWinkler
    Registriert seit
    02.09.2009.
    Beiträge
    139

    Standard

    Ich weiß nicht, ob das von Bedeutung ist: in /system/logs/error.log bekomme ich nach jedem erfolgreichen Versand der Forumsbenachrichtigung folgenden Eintrag:
    [27-May-2016 13:25:02 Europe/Berlin]
    PHP Warning: preg_replace_callback(): Requires argument 2, 'Array', to be a valid callback in /kunden/465037_30627/webseiten/cms/3_2/system/modules/helpdesk/HelpdeskNotify.php on line 563
    #0 [internal function]: __error(2, 'preg_replace_ca...', '/kunden/465037_...', 563, Array)
    #1 /kunden/465037_30627/webseiten/cms/3_2/system/modules/helpdesk/HelpdeskNotify.php(563): preg_replace_callback(Array, Array, 'LWinkler hat ei...')
    #2 /kunden/465037_30627/webseiten/cms/3_2/system/modules/helpdesk/HelpdeskNotify.php(386): HelpdeskNotify->html2text('LWinkler hat ei...')
    #3 /kunden/465037_30627/webseiten/cms/3_2/system/modules/helpdesk/HelpdeskNotify.php(355): HelpdeskNotify->notify(Object(Contao\Database\Mysqli\Result), Array, 'http://gynamed....', 'Antwort an: For...', 'LWinkler hat ei...', false)
    #4 /kunden/465037_30627/webseiten/cms/3_2/system/modules/helpdesk/HelpdeskNotify.php(104): HelpdeskNotify->notifyMessage(Object(Contao\Database\Mysqli\Resul t))
    #5 /kunden/465037_30627/webseiten/cms/3_2/system/modules/helpdesk/HelpdeskNotify.php(606): HelpdeskNotify->run()
    #6 /kunden/465037_30627/webseiten/cms/3_2/system/modules/helpdesk/HelpdeskNotifyExec.php(26): require_once('/kunden/465037_...')
    #7 /kunden/465037_30627/webseiten/cms/3_2/system/modules/cron/public/CronFeController.php(184): include('/kunden/465037_...')
    #8 /kunden/465037_30627/webseiten/cms/3_2/system/modules/cron/public/CronFeController.php(116): BugBuster\Cron\CronFeController->runJob(Object(Contao\Database\Mysqli\Result))
    #9 /kunden/465037_30627/webseiten/cms/3_2/system/modules/cron/public/CronFeController.php(306): BugBuster\Cron\CronFeController->run()
    #10 {main}
    Da die Benachrichtigungen scheinbar problemlos verschickt werden, neige ich dazu, das zu ignorieren.
    Was meint ihr?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •