Ergebnis 1 bis 25 von 25

Thema: Cronjobs

  1. #1
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.264
    Contao-Projekt unterstützen

    Support Contao

    Standard Cronjobs

    Irgendwie ist das an mir vorbeigegangen, jetzt wo ich meine ersten Updates auf Contao 5.3 teste ist es mir erst aufgefallen. Es gibt im Backend keine Einstellung mehr, den Web-Cronjob nach jedem Request abzustellen. Also habe ich gesucht und wurde fündig. Es wird jetzt ein echter Cronjob automatisch detektiert und damit auch der "Poor Man's Cron" deaktiviert. Deswegen wurde die Einstellmöglichkeit im Backend entfernt.

    Ich habe jetzt bei einem Kunden die Situation, dass die Zahl der verfügbaren Cronjobs zu klein ist, um für alle Contao-Installationen einen echten Cronjob zu nutzen. Bisher habe ich da in Contao 4.13 trotzdem den "Poor Man's Cron" (Command Scheduler) im Backend deaktiviert und dann eben per wget von extern per echtem Cron die _contao/cron Route aufgerufen. Das wollte ich deshalb jetzt nach dem Update auf Contao 5.3 wieder so machen. Habe jetzt allerdings keinen Plan ob und wie ich den Command Scheduler überhaupt noch manuell deaktivieren kann und ob das ggf. überhaupt noch irgendeinen Sinn macht, also eine Verbesserung gegenüber dem defaultmäßig benutzten Command Scheduler bringen würde.

    Oder wird der regelmäßige Aufruf der _contao/cron Route per wget ebenfalls automatisch erkannt wie der "echte" Cronjob mit Aufruf von
    Code:
    php /path/to/contao/vendor/bin/contao-console contao:cron
    Die uralte Einstellung in der localconfig.php ist auch beim Update auf 5.3 erhalten geblieben, aber bewirkt die jetzt in Contao 5.3 überhaupt noch was?
    PHP-Code:
    $GLOBALS['TL_CONFIG']['disableCron'] = true

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

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Ich habe jetzt bei einem Kunden die Situation, dass die Zahl der verfügbaren Cronjobs zu klein ist, um für alle Contao-Installationen einen echten Cronjob zu nutzen.
    Mach dir als Workaround einfach ein Shell Script
    » sponsor me via GitHub or Revolut

  3. #3
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.264
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ok, die Idee ist gut und sollte klappen. Außerdem habe ich gerade gesehen, dass wir bei dem Kunden mittlerweile sogar satte 5 Cronjobs haben , was früher, soweit ich mich erinnere, nicht der Fall war. Aber bewirkt der localconfig-Eintrag momentan noch das, was er früher bewirkt hat oder nicht mehr? Ist der CommandScheduler jetzt (Contao 5.3) also nur noch automatisch abschaltbar durch Erkennung des regelmäßigen Kommandozeilen-Aufrufs (durch den echten Cronjob)? Der Text auf Github lässt mich das jedenfalls vermuten. Interessiert mich halt einfach.

  4. #4
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Klinke mich hier mal ein,

    kann man den Cronjob garnicht mehr über die URL aufrufen?

    ich rufe den zwar jede Minute auf aber ausgefürt wird er nur wenn man die Website besucht
    Liebe Grüße
    WebRoxx


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

    Standard

    Doch, die /_contao/cron Route existiert auch in Contao 5 noch. Es kann aber sein, dass sich gewisse Cronjobs unter dieser Route nicht ausführen - das wäre aber auch in Contao 4.13 so.
    » sponsor me via GitHub or Revolut

  6. #6
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Doch, die /_contao/cron Route existiert auch in Contao 5 noch. Es kann aber sein, dass sich gewisse Cronjobs unter dieser Route nicht ausführen - das wäre aber auch in Contao 4.13 so.
    Okay... der aufbau ist dieser aus der Doku

    PHP-Code:
    // src/Cron/ExampleCron.php
    namespace App\Cron;

    use 
    Contao\CoreBundle\DependencyInjection\Attribute\AsCronJob;

    #[AsCronJob('hourly')]
    class ExampleCron
    {
        public function 
    __invoke()
        {
            
    // Do something …
        
    }

    Liebe Grüße
    WebRoxx


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

    Standard

    Sollte funktionieren.
    » sponsor me via GitHub or Revolut

  8. #8
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Sollte funktionieren.
    Ja tut es auch (man sollte nur die richte dev.domain aufrufen)
    Liebe Grüße
    WebRoxx


  9. #9
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Habe gerade festgestellt das meine DB extrem groß ist weil die Tabelle "tl_message_queue" tausende einträge hat.

    hab ich was verpasst oder sollte das mit Cronjob von Contao (den man auch pber die URL anstoßen kann) nicht abgearbeitet werden?

    Die Einstellung die es mal gab mit "echten Cronjob" ist auch aus den Einstellungen verschwunden oder?
    Liebe Grüße
    WebRoxx


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

    Standard

    Vom Cronjob an sich nicht, aber es gibt einen Cronjob der den Supervisor startet, welcher wiederum die Message Worker startet welche wiederum die Messages abarbeiten sollten.

    Welche Contao Version?
    » sponsor me via GitHub or Revolut

  11. #11
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Vom Cronjob an sich nicht, aber es gibt einen Cronjob der den Supervisor startet, welcher wiederum die Message Worker startet welche wiederum die Messages abarbeiten sollten.

    Welche Contao Version?
    die aktuelle 5.3.10

    ich hab bei meinen 3 5er seiten ein Cronjob der die URL aufruft, reicht das nicht?
    Liebe Grüße
    WebRoxx


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

    Standard

    Zitat Zitat von WebRoxx Beitrag anzeigen
    ich hab bei meinen 3 5er seiten ein Cronjob der die URL aufruft, reicht das nicht?
    Nein, muss ein echter Cronjob sein.

    In Symfony/Contao 5.3.10 gibt es momentan einen Fehler, der die Abarbeitung der Messages verhindert, wenn man keinen echten Cronjob hat.
    » sponsor me via GitHub or Revolut

  13. #13
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nein, muss ein echter Cronjob sein.

    In Symfony/Contao 5.3.10 gibt es momentan einen Fehler, der die Abarbeitung der Messages verhindert, wenn man keinen echten Cronjob hat.
    okay, also brauch ich nur diese zeile ausführen php82 bin/console messenger:consume contao_prio_low bzw die anderen halt auch wie high etc

    die contao cronjob die über die url ausgeführt werden gingen doch auch per console mit contao-console contao:cron oder
    Liebe Grüße
    WebRoxx


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

    Standard

    Zitat Zitat von WebRoxx Beitrag anzeigen
    okay, also brauch ich nur diese zeile ausführen php82 bin/console messenger:consume contao_prio_low bzw die anderen halt auch wie high etc
    Einfach nur contao:cron, das sollte reichen.
    » sponsor me via GitHub or Revolut

  15. #15
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Einfach nur contao:cron, das sollte reichen.
    ah okay, jo klapp...

    allgemeine frage, ich muss es ja über ne php datei mit exec regeln, lieber außerhalb des roots ablegen oder ist es komplett wurst

    da sparrt man sich quasi /_contao/cron aufzurufen
    Liebe Grüße
    WebRoxx


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

    Standard

    Was genau meinst du damit?
    » sponsor me via GitHub or Revolut

  17. #17
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.172

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Was genau meinst du damit?
    aktuell rufe ich per cronjob nur domain.org/_contao/cron auf
    Liebe Grüße
    WebRoxx


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

    Standard

    Wie gesagt solltest du den echten Cronjob einrichten.
    » sponsor me via GitHub or Revolut

  19. #19
    Contao-Fan
    Registriert seit
    20.06.2009.
    Ort
    Küps
    Beiträge
    363

    Standard Wie in 5.3er LTS Version den Cron ausführen über php File

    Ich muss mal fragen weil ich gerade folgendes Problem habe.

    Der Webspace lässt nur über HTTP Cron zu. Ich kann also kein Shellscript usw machen.

    In der "system/config/parameters.yaml"

    habe ich dies eingefügt:
    Code:
    parameters:
        router.request_context.host: 'example.com'
        router.request_context.scheme: 'https'
    Dennoch führt der Cron nicht aus.

    Meine Überlegung wäre nun eine PHP Datei zu machen die ich per URL aufrufe die dann direkt

    Code:
    vendor/bin/contao-console contao:cron
    aufruft.

    Würdet ihr das so machen oder eher was anderes?

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

    Standard

    Zitat Zitat von chrischnian Beitrag anzeigen
    Ich muss mal fragen weil ich gerade folgendes Problem habe.

    Der Webspace lässt nur über HTTP Cron zu. Ich kann also kein Shellscript usw machen.

    In der "system/config/parameters.yaml"

    habe ich dies eingefügt:
    Code:
    parameters:
        router.request_context.host: 'example.com'
        router.request_context.scheme: 'https'
    Diese Config ist nur für die Ausführung der Cronjobs auf der Konsole relevant. Wenn du /_contao/cron nutzt, brauchst du das nicht



    Zitat Zitat von chrischnian Beitrag anzeigen
    Dennoch führt der Cron nicht aus.
    Wie lässt du die Cronjobs ausführen?



    Zitat Zitat von chrischnian Beitrag anzeigen
    Meine Überlegung wäre nun eine PHP Datei zu machen die ich per URL aufrufe die dann direkt

    Code:
    vendor/bin/contao-console contao:cron
    aufruft.

    Würdet ihr das so machen oder eher was anderes?
    Wenn du wirklich keine Cronjobs mit Konsolenkommandos anlegen kannst, kannst du /_contao/cron nutzen (siehe https://docs.contao.org/dev/framework/cron/#web-url).
    » sponsor me via GitHub or Revolut

  21. #21
    Contao-Fan
    Registriert seit
    20.06.2009.
    Ort
    Küps
    Beiträge
    363

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Diese Config ist nur für die Ausführung der Cronjobs auf der Konsole relevant. Wenn du /_contao/cron nutzt, brauchst du das nicht

    Wie lässt du die Cronjobs ausführen?

    Wenn du wirklich keine Cronjobs mit Konsolenkommandos anlegen kannst, kannst du /_contao/cron nutzen (siehe https://docs.contao.org/dev/framework/cron/#web-url).
    Ich habe es gerade mehrmals probiert:

    Im Backend vom Webhoster kann ich beim CronJob nur eine WebURL eintragen. Wenn ich also example.com/_contao/cron aufrufe bekomme ich keinen Fehler und keine Bestätigung.

    In der Extension von @BugBuster habe ich es auch probiert:

    DIe example.com/_contao/cron oder auch als Route:
    Dabei kommt es immer zu dieser Meldung:

    Bildschirmfoto_20240927_224804.png


    Bin für Tipps weiter offen.

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

    Standard

    Diese Meldungen haben nichts mit dem Contao Cronjob zu tun.
    » sponsor me via GitHub or Revolut

  23. #23
    Contao-Fan
    Registriert seit
    20.06.2009.
    Ort
    Küps
    Beiträge
    363

    Standard

    Okay danke für die Info

    aber die Veröffentlichungen bzw aus- und einblendungen bei Seiten und Artikel haben aber auch nicht funktioniert und die sollten durch den CronJob ja eigentlich "wirken".

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

    Standard

    Auch das hat nichts mit dem Contao Cronjob zu tun.

    Ich denke für deine Probleme ist das nicht der richtige Thread?
    » sponsor me via GitHub or Revolut

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

    Standard

    Zitat Zitat von chrischnian Beitrag anzeigen
    Ich habe es gerade mehrmals probiert:

    Im Backend vom Webhoster kann ich beim CronJob nur eine WebURL eintragen. Wenn ich also example.com/_contao/cron aufrufe bekomme ich keinen Fehler und keine Bestätigung.

    In der Extension von @BugBuster habe ich es auch probiert:

    Die example.com/_contao/cron oder auch als Route:
    Dabei kommt es immer zu dieser Meldung:
    Ich hoffe mal das du bei der URL die example.com durch deine Domain ersetzt hast.
    Und 204 ist der Return Code vom Websever "No Content". Wenn der Cron da nichts zurückmeldet wäre das OK. Oder aber da stimmt was nicht mit den definierten Cronjobs (nicht die in meiner Erweiterung) und es kommt zum Abbruch oder sowas.
    Das kannst du ja selber testen, in dem du die URL selber im Browser eingibst und schaust was passiert. (https://deine-domain/_contao/cron)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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