Crontab appQualificationCheckHour funktioniert nicht #110

Closed
opened 2023-07-21 17:55:25 +02:00 by jost · 18 comments
jost commented 2023-07-21 17:55:25 +02:00 (Migrated from gitlab.uniworx.de)

In src/Jobs/Crontab.hs sollen gemäß appQualificationCheckHour die Jobs JobLmsQualificationsEnqueue und JobLmsQualificationsDequeue täglich einmal ausgeführt werden, sofern diese nicht bereits einmal manuell über die Knöpfe in der E-Learning Ansicht ausgelöst wurden (es ist aber prinzipiell harmlos, wenn die Jobs mehrfach hintereinander ausgelöst werden).

Die Benutzung der Knöpfe in der E-Learning Ansicht zeigt, dass die beiden Jobs funktionieren und korrekt arbeiten. Die Jobs werden einfach nicht durch die Crontab zur Ausführung eingereiht.

In src/Jobs/Crontab.hs sollen gemäß appQualificationCheckHour die Jobs `JobLmsQualificationsEnqueue` und `JobLmsQualificationsDequeue` täglich einmal ausgeführt werden, sofern diese nicht bereits einmal manuell über die Knöpfe in der E-Learning Ansicht ausgelöst wurden (es ist aber prinzipiell harmlos, wenn die Jobs mehrfach hintereinander ausgelöst werden). Die Benutzung der Knöpfe in der E-Learning Ansicht zeigt, dass die beiden Jobs funktionieren und korrekt arbeiten. Die Jobs werden einfach nicht durch die Crontab zur Ausführung eingereiht.
jost commented 2023-07-21 17:55:26 +02:00 (Migrated from gitlab.uniworx.de)

assigned to @savau

assigned to @savau
jost commented 2023-07-24 15:13:14 +02:00 (Migrated from gitlab.uniworx.de)

mentioned in issue #2

mentioned in issue #2
jost commented 2023-07-25 16:52:05 +02:00 (Migrated from gitlab.uniworx.de)

Dequeue wurde anscheinen ausgeführt (Druckjobs wurden zur passenden Uhrzeit erstellt), aber Enqueue wurde nicht ausgeführt. Beide Jobs hinterließen aber keinen Eintrag im Log.

Dequeue wurde anscheinen ausgeführt (Druckjobs wurden zur passenden Uhrzeit erstellt), aber Enqueue wurde nicht ausgeführt. Beide Jobs hinterließen aber keinen Eintrag im Log.
jost commented 2023-08-23 11:19:33 +02:00 (Migrated from gitlab.uniworx.de)

added #114 as child task

added #114 as child task
savau commented 2023-09-18 17:22:48 +02:00 (Migrated from gitlab.uniworx.de)

Notiz: In cronQualificationCheckHour wird als Rate-Limit nominalDay / 2 definiert, das heißt der Job wird geskipped falls er im letzten halben Tag bereits ausgeführt wurde. Wurde in den letzten 12 Std. also schon (z.B. insbes. auch manuell!) ein QualificationCheckHour job getriggert, könnte dies wegen dem RateLimit das automatische Ausführen verhindern

Notiz: In `cronQualificationCheckHour` wird als Rate-Limit `nominalDay / 2` definiert, das heißt der Job wird geskipped falls er im letzten halben Tag bereits ausgeführt wurde. Wurde in den letzten 12 Std. also schon (z.B. insbes. auch manuell!) ein QualificationCheckHour job getriggert, könnte dies wegen dem RateLimit das automatische Ausführen verhindern
jost commented 2023-09-18 17:24:48 +02:00 (Migrated from gitlab.uniworx.de)

Er wurde aber auch über mehrere Tage nicht ausgeführt.

Er wurde aber auch über mehrere Tage nicht ausgeführt.
savau commented 2023-09-18 18:14:41 +02:00 (Migrated from gitlab.uniworx.de)

Stimmt, das spricht schon mal mindestens für ein anderes oder zusätzliches Problem.

Wir schauen uns als nächstes auch mal die Logs und Traces der ausgeführten Jobs an, evtl. finden sich ja Traces von aufgeführten (im Sinne von nur gequed) Jobs die wg. z.B. rateLimit blockieren, aber gar nicht produktiv ausgeführt wurden - für so ein Verhalten kann es unterschiedliche Gründe geben (fehlerhafte Bedingung, irgendwo fälschlicherweise von ExceptT abgebrochen, Job crashed im richtigen Moment, ...)

Stimmt, das spricht schon mal mindestens für ein anderes oder zusätzliches Problem. Wir schauen uns als nächstes auch mal die Logs und Traces der ausgeführten Jobs an, evtl. finden sich ja Traces von aufgeführten (im Sinne von nur gequed) Jobs die wg. z.B. rateLimit blockieren, aber gar nicht produktiv ausgeführt wurden - für so ein Verhalten kann es unterschiedliche Gründe geben (fehlerhafte Bedingung, irgendwo fälschlicherweise von `ExceptT` abgebrochen, Job crashed im richtigen Moment, ...)
savau commented 2023-10-17 18:19:08 +02:00 (Migrated from gitlab.uniworx.de)

assigned to @mosbach and unassigned @savau

assigned to @mosbach and unassigned @savau
mosbach commented 2023-11-10 14:27:50 +01:00 (Migrated from gitlab.uniworx.de)

created branch 110-crontab to address this issue

created branch [`110-crontab`](/fradrive/fradrive/-/compare/master...110-crontab) to address this issue
mosbach commented 2023-11-10 14:30:46 +01:00 (Migrated from gitlab.uniworx.de)

mentioned in merge request !22

mentioned in merge request !22
jost (Migrated from gitlab.uniworx.de) closed this issue 2023-11-24 16:56:37 +01:00
jost (Migrated from gitlab.uniworx.de) reopened this issue 2024-01-04 11:17:09 +01:00
jost commented 2024-01-04 11:17:41 +01:00 (Migrated from gitlab.uniworx.de)

Seit dem Jahreswechsel funktioniert die automatische Ausführung nicht mehr

Seit dem Jahreswechsel funktioniert die automatische Ausführung nicht mehr
savau commented 2024-01-07 21:15:13 +01:00 (Migrated from gitlab.uniworx.de)

Ich kann von extern aus aktuell leider weder anhand der bisherigen Änderungen zur Behebung noch anhand des Prod-Systems eine mögliche Ursache dessen erkennen; die grundlegende Definition der Zeiten zur automatischen Ausführungen sind lediglich über Wochentage (1-5, also Mo-Fr) und Uhrzeiten (15:00 und 03:00 Uhr) definiert, was unabhängig von Jahreswechseln ist.

Hierzu sollten wir uns in unserer nächsten Besprechung wohl mal mögliche Änderungen an der Prod-Konfiguration zusammen ansehen. Bis dahin sehe ich mir die Definitionen der tatsächlichen Enqueue- und Dequeue-Jobs an, vielleicht liegt die Ursache ja dort.

Ich kann von extern aus aktuell leider weder anhand der bisherigen Änderungen zur Behebung noch anhand des Prod-Systems eine mögliche Ursache dessen erkennen; die grundlegende Definition der Zeiten zur automatischen Ausführungen sind lediglich über Wochentage (1-5, also Mo-Fr) und Uhrzeiten (15:00 und 03:00 Uhr) definiert, was unabhängig von Jahreswechseln ist. Hierzu sollten wir uns in unserer nächsten Besprechung wohl mal mögliche Änderungen an der Prod-Konfiguration zusammen ansehen. Bis dahin sehe ich mir die Definitionen der tatsächlichen Enqueue- und Dequeue-Jobs an, vielleicht liegt die Ursache ja dort.
jost commented 2024-01-08 17:54:48 +01:00 (Migrated from gitlab.uniworx.de)

Im Log gibt es keine Aufälligkeiten. Bereits dieses Zeile am Anfang des Handlers
$logInfoS "LMS" $ "Notifying about exipiring qualification " <> qshort
taucht nicht auf, d.h. der Job Handler wird nicht automatisch durch die crontab ausgeführt, obwohl das crontab setting dieser jobs unter /lms korrekt angezeigt wird.

Im Log gibt es keine Aufälligkeiten. Bereits dieses Zeile am Anfang des Handlers `$logInfoS "LMS" $ "Notifying about exipiring qualification " <> qshort` taucht nicht auf, d.h. der Job Handler wird nicht automatisch durch die crontab ausgeführt, obwohl das crontab setting dieser jobs unter `/lms` korrekt angezeigt wird.
jost commented 2024-01-09 16:38:49 +01:00 (Migrated from gitlab.uniworx.de)

Nochwas: Unter /admin/crontab tauchen die Jobs ebenfalls nicht mehr auf. Überhaupt sind nur wenige jobs vorhanden. determine-crontab ist allerdings dabei und wird ungefähr einmal pro Minute ausgeführt (zumindest ändern sich die beiden Zeitspalten und zeigen immer die Minute der Aufrufzeit).

Unter /lms sehe ich die korrekten Einstellungen:
image

Nochwas: Unter `/admin/crontab` tauchen die Jobs ebenfalls nicht mehr auf. Überhaupt sind nur wenige jobs vorhanden. `determine-crontab` ist allerdings dabei und wird ungefähr einmal pro Minute ausgeführt (zumindest ändern sich die beiden Zeitspalten und zeigen immer die Minute der Aufrufzeit). Unter `/lms` sehe ich die korrekten Einstellungen: ![image](/uploads/de258fbde7091f5578d1c07ceaac3874/image.png)
savau commented 2024-01-09 18:35:23 +01:00 (Migrated from gitlab.uniworx.de)

Danke für die Infos. Ich habe den Cron-/Crontab-Code etwas durchforstet und denke, die Ursache der nicht mehr automatischen Ausführung könnte an einem Bug in nextCronMatch (src/Cron.hs Z. 159 ff.) liegen:

Um zu berechnen, ob ein Job ausgeführt werden soll, fließt der Zeitpunkt wann ein Job gleichen Typs zuletzt ausgeführt wurde. Möglicherweise werden hier Matches im Vorjahr nicht berücksichtigt (= Bug).

Eine einfache Methode, um das zu verifizieren ist, Enqueue- und Dequeue-Job jeweils einmal manuell zu triggern. @jost Bitte mache das mal und gib' dann Bescheid, ob danach Enqueue und Dequeue wieder automatisch ausgeführt werden.

Danke für die Infos. Ich habe den Cron-/Crontab-Code etwas durchforstet und denke, die Ursache der nicht mehr automatischen Ausführung könnte an einem Bug in `nextCronMatch` (`src/Cron.hs` Z. 159 ff.) liegen: Um zu berechnen, ob ein Job ausgeführt werden soll, fließt der Zeitpunkt wann ein Job gleichen Typs zuletzt ausgeführt wurde. Möglicherweise werden hier Matches im Vorjahr nicht berücksichtigt (= Bug). Eine einfache Methode, um das zu verifizieren ist, Enqueue- und Dequeue-Job jeweils einmal manuell zu triggern. @jost Bitte mache das mal und gib' dann Bescheid, ob danach Enqueue und Dequeue wieder automatisch ausgeführt werden.
jost commented 2024-01-10 09:55:16 +01:00 (Migrated from gitlab.uniworx.de)

Habe die Jobs über die Knöpfe manuell ausgelöst. Die Crontab-Tabelle hat sich dadurch nicht verändert, aber heute morgen wurde der eine Job tatsächlich wieder ausgeführt - vermutlich dann auch der andere heute Abend.

Komisch aber, denn in der Entwicklungsumgebung sehe ich die beiden Jobs unter /admin/crontab.

Habe die Jobs über die Knöpfe manuell ausgelöst. Die Crontab-Tabelle hat sich dadurch nicht verändert, aber heute morgen wurde der eine Job tatsächlich wieder ausgeführt - vermutlich dann auch der andere heute Abend. Komisch aber, denn in der Entwicklungsumgebung sehe ich die beiden Jobs unter `/admin/crontab`.
savau commented 2024-01-15 12:02:08 +01:00 (Migrated from gitlab.uniworx.de)

Gefixed durch manuelle Ausführung im neuen Jahr; wird seitdem aber nicht mehr in der Crontab gelistet.

Gefixed durch manuelle Ausführung im neuen Jahr; wird seitdem aber nicht mehr in der Crontab gelistet.
savau (Migrated from gitlab.uniworx.de) closed this issue 2024-01-15 12:02:20 +01:00
jost commented 2024-03-15 10:44:52 +01:00 (Migrated from gitlab.uniworx.de)

mentioned in commit 092a4c78d5

mentioned in commit 092a4c78d5303bdf401e899cc090639d9df5e09b
This repo is archived. You cannot comment on issues.
No project
No Assignees
1 Participants
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: fraport/fradrive-old#110
No description provided.