Hangfire: Täglich wiederkehrende Jobs mit Cron ExpressionC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Hangfire: Täglich wiederkehrende Jobs mit Cron Expression

Post by Anonymous »

Ich erstelle dynamisch einen Cron-Ausdruck in C#, um Jobs in Hangfire basierend auf einer konfigurierten Startzeit, Endzeit und einem Wiederholungsintervall (in Stunden oder Minuten) zu planen. Bei einer täglichen_Startzeit von „08:00“, einer täglichen_Endzeit von „17:00“ und einem täglichen_Wiederholungswert von 3 Stunden gibt mein Code beispielsweise den Ausdruck „0 8-17/3 * * *“ aus, der voraussichtlich jeden Tag um 08:00, 11:00, 14:00 und 17:00 Uhr ausgeführt wird. Hangfire startet den Job jedoch tatsächlich im Standardraster (03:00, 06:00, 09:00 …) und filtert dann die Ergebnisse nach dem Fenster 8–17 (die erste Ausführung findet also um 09:00 Uhr statt). Ich brauche eine Möglichkeit, den Cron-Parser zu zwingen, den angegebenen Startoffset zu berücksichtigen, anstatt immer Intervalle ab Mitternacht zu verankern.
Das Gleiche gilt für Minuten: „*/17 8-17 * * *“ (für ein 17-Minuten-Intervall, das um 08:30 beginnt)
Das ist schwieriger, weil ich in der Execute-Methode eine Methode IsOutOfExecutionWindow verwende, die definiert, ob sie im gewünschten Bereich liegt oder nicht (unter Berücksichtigung der Minuten), also ist das schwieriger und es ist logisch, dass es um 08:34 statt um 8:47 beginnt.
Ich habe Quartz noch nicht ausprobiert (ich behalte es als letzten Ausweg, weil ich viele Dinge ändern und bereits laufende Jobs migrieren müsste. Außerdem weiß ich noch nicht einmal, ob es meine Bedürfnisse abdeckt oder nicht)
Ich bin offen für Ideen, aber ich zögere, eins zu übernehmen Selbstplanungsansatz (bei dem jeder Job den nächsten plant), weil ich mir Sorgen über verpasste Ausführungen während der Ausfallzeit mache.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post