Berechnen Cron Nächste Laufzeit in C #

9

Ich habe einen crontab-ähnlichen Scheduler. Zeitdefinition "MM HH WD MD M":

MM-Minuten
HH-Stunden
WD- Wochentage
MD - Tage des Monats
M - Monate

WD, MD und M erlauben mehrere Einträge und jeder der Parameter kann null sein, zum Beispiel:

%Vor%

Das Problem besteht darin, wie die nächste Laufzeit berechnet wird, wenn Sie das letzte Ausführungsdatum kennen. Ich weiß, wie man das mit einer Schleife macht (füge einfach 1 Minute hinzu, bis es der Bedingung entspricht), aber es muss einen besseren Weg geben.

    
user1016945 14.11.2011, 12:11
quelle

2 Antworten

14

Ich habe erfolgreich NCrontab für genau diesen Zweck verwendet.

mit etwas wie

%Vor%     
devrooms 14.11.2011, 12:32
quelle
2

Sie können das entweder selbst programmieren, indem Sie DateTime und TimeSpan - zum Beispiel:

%Vor%

überprüft, ob es momentan 15:35 ist (und somit eine Ausführung stattfinden muss), ähnliche Prüfungen können für den Wochentag, den Tag des Monats usw. implementiert werden.

oder verwenden Sie eine wirklich nette Open Source .NET-Bibliothek namens NodaTime (ist definitiv ein besserer Weg).

Eine andere Option ist die Verwendung einer anderen Architektur - für solche schedulerartigen Apps / Dienste gibt es eine Open Source-Bibliothek namens Quartz ( ist noch besser), was unter diesen Berechnungen viele andere sehr nützliche Dinge in diesem Zusammenhang macht.

    
Yahia 14.11.2011 12:20
quelle

Tags und Links