Cronjobs via CLI

  • App
    WoltLab Suite Core

    Moin,

    Cronjobs sind generell via CLI schon möglich. Jedoch erfordert das auch immer die Zugangsdaten. Des Weiteren würden CLI Cronjobs immer mit Webcrons parallel laufen.

    Das macht aber meiner Meinung keinen Sinn.

    ICh finde, man sollte Cronjobs lieber ähnlich wie bei Nextcloud mit einem "entweder cli, oder web" lösen und den User dann entscheiden lassen.

    Bei Nextcloud schaut das so aus:

    Webcron sollte dennoch default bei Installation bleiben, da nicht jeder, die Möglichkeiten hat, das konfigurieren, noch weiß wie man das tut.

    Ich fände es besser, wenn man das aufspaltet. Natürlich sollte grad dieses dann auch in das offizielle Handbuch aufgenommen werden.

    Was haltet ihr von der Idee?

    Den Thread habe ich schon dazu gefunden:

    Cronjobs mit echten Cronjobs ausführen

    EDIT: Natürlich gibt es das Plugin von Mysterycode, ich fände es aber tausend mal besser, wenn es nativ integriert werden würde. So muss man sich das Plugin und man weiß, dass direkt von Woltlab kommt.

    EDIT2: Auch sollte es ohne Zugangsdaten meiner Meinung nach ermöglicht werden.

    EDIT3: Ein großer Mehrwert ist vorallem, dass die Cronjobs so definitiv regelmäßig laufen könnten, auch wenn die Seite weniger oft besucht ist. Auch vereinfacht man das Ausführen.

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

    Edited 3 times, last by Xopez (May 18, 2021 at 1:45 PM).

  • Hallo,

    das hier („Ausführung via CLI“) ist nicht geplant, aber ich habe gerade diese Issue erstellt:

    Create dedicated controller to execute cronjobs similarly to background queue · Issue #5150 · WoltLab/WCF
    Cronjobs relying on DBOAction adds unneccessary complexity, especially since the actual logic does not depend on DBOs or the DBOAction functionality at all and…
    github.com

    Wenn die umgesetzt ist, dann können die Cronjobs genau so leicht wie die Background-Queue über einen simplen curl-Request angestoßen werden.

    Realistisch wird in dem Zuge dann auch das CronjobCLICommand entfernt, mit dem notwendigen Login ist das in der Praxis eh unbenutzbar.

  • Tim Düsterhus November 28, 2022 at 4:52 PM

    Added the Label Won’t be implemented
  • Hallo,

    das ist jetzt wie beschrieben umgesetzt worden, der cronjob-Befehl für die CLI ist entfallen. Verwendung im Cronjob:

    Code
    curl -fsSL 'https://example.com/index.php?cronjob-perform/'

    Darf ich fragen, warum das System die Cronjobs nicht von selbst einleitet bzw. ausführt?

    Ich musste eine Zeit lang auf ein externes Plugin namens external-cronjob-execution-api zurückgreifen, weil es vonseiten Woltlab nichts dazu gab. Durch Zufall bin ich darauf gestoßen und habe diesen Beitrag hier gesehen.

    Dank Hanashi weiß ich nun, dass ich so etwas nutzen kann:

    Code
    * * * * *	curl -fsSL 'https://example.com/index.php?cronjob-perform/'
    * * * * *	curl -fsSL 'https://example.com/index.php?background-queue-perform/'

    Warum steht sowas nicht im Handbuch https://manual.woltlab.com/de/logs/#cronjobs oder übersehe ich etwas?

    mfg

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!