Cronjobs ignorieren Monat

  • Man erstelle einen Cronjob der immer am ersten Dezember um 12 Uhr stattfindet.


    Startet man den Cronjob würde man erwarten dass dieser das nächste mal am 01.12.2017 durchgeführt wird, tatsächlich aber bekommt man folgendes:


    Also enweder ich habe die Cron Syntax komplett falsch verstanden oder die Berechnung ignoriert die Angabe des Monats...


    Das Verhalten hat sich in diesem Zusammenhang in allen WCF/WSC Versionen gezeigt soweit ich das getestet habe.


    Gruß,

    Morik

    • Official Post

    Ich habe gerade mal eine Reihe von Tests gemacht und so wie es aussieht, wird der Monat bei der gesamten Berechnung ignoriert. Leider sehe ich keine Möglichkeit dies auf eine einfache Art und Weise zu korrigieren, die Berechnung ist sehr komplex und selbst kleinste Änderungen können fatale Folgen haben, die sich mitunter erst sehr spät äußern, etwa durch abweichende Ausführungszeitpunkte in der Zukunft.


    Angesichts der Tatsache, dass dies seit WCF 2.0 schon so ist und es in der ganzen Zeit nicht einen einzigen Report dazu gibt, sehe ich den Nutzen bei der Angabe des Monats als nicht existent an. Eine Anpassung der Berechnung zu diesem Zweck schließe ich damit aus, der Nutzen rechtfertigt das nicht unerhebliche Risiko in meinen Augen nicht.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • Das Problem ist doch, dass ihr zwar den Monat ausrechnet, den wert aber nicht verwendet und im WSC sogar gar nicht erst speichert:

    https://github.com/WoltLab/WCF…ronjobUtil.class.php#L144


    Die Berechnung des richtigen Monats und Jahrs kann aber erst erfolgen nachdem man intern alle anderen Pararmeter berechnet hat (für den fall dass man über das Monatsende hinaus kommt).

    Würde man diese Berechnung also erst im Anschluss durchführen kämen auch nicht plötzlich werte wie der 13. Monat usw raus, die zwar zulässig sind für gmmktime, aber so ganz sicher nicht den erwarteten Ergebnissen entsprechen.


    https://github.com/WoltLab/WCF/pull/2150


    Das würde das Problem beheben, ob ihr das merged oder nicht ist natürlich euch überlassen, würde es jedoch begrüßen :D

  • Bitte mergt das, ist mir beim testen der Betas mehrmals aufgefallen, aber dachte ich hätte etwas falsch eingegeben.

  • Angesichts der Tatsache, dass dies seit WCF 2.0 schon so ist und es in der ganzen Zeit nicht einen einzigen Report dazu gibt, sehe ich den Nutzen bei der Angabe des Monats als nicht existent an. Eine Anpassung der Berechnung zu diesem Zweck schließe ich damit aus, der Nutzen rechtfertigt das nicht unerhebliche Risiko in meinen Augen nicht.

    das sehe ich aber anders, nur weil etwas schon lange falsch ist hat das keine berechtigung so zu bleiben

    ich selbst brauche das und möchte diesen bug behoben haben


    mfg

  • Der original Pull Request hatte unter bestimmten Umständen ein falsches Datum berechnet und wurde daher abgelehnt.

    Ich hab aber nen neuen eingereicht, eventuell klappt es ja mit diesem, zumal ich dafür auch nen ausgibigen Test beigefügt habe um solche Probleme frühzeitig zu erkennen:

    https://github.com/WoltLab/WCF/pull/2161

  • das freut mich Morik und ich finde es supper das sich die user hier solch eine mühe geben,

    hier fehlen mir aber noch immer ein paar worte seites woltlab, ich denke das wäre ja nicht zuviel verlangt :)


    mfg

Participate now!

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