2016-06-01 10 views
0

Ich habe noch nie einen Windows-Dienst oder einen Scheduler geschrieben, so dass ich nicht herausfinden konnte, was zu tun ist.Wie soll ich die Planung tun

Ich muss einen Windows-Dienst schreiben. In meiner Datenbank befindet sich eine Berichtstabelle, und ich muss sie jeden Tag überprüfen, um festzustellen, ob neue Berichte hinzugefügt wurden. Berichte haben Empfänger und die Zeiteinstellungen, wie 15. jeden Monats um 14:00 Uhr oder täglich um 12:35 Uhr oder wöchentlich mittwochs um 13:00 Uhr. Und ich muss zu diesen Zeiten E-Mails mit einigen Berichten senden.

Wie ich mich entschieden habe, werde ich Quartz.NET verwenden. Aber es gibt ein paar Dinge, die ich nicht verstehe. Also werde ich 2 Jobs haben, denke ich. Eine, um die Datenbank jeden Tag zu überprüfen, um zu sehen, ob es neue Berichte gibt, die Benutzer wünschen. Und wenn ich sie erhalte, erstelle ich verschiedene neue Jobs mit neuen Triggern basierend auf den Zeiten in der DB? Erstelle ich bei der ersten täglichen Prüfung neue Auslöser? Ich habe es nicht verstanden.

Und wenn zum Beispiel eine Zeit eines Berichts aktualisiert oder gelöscht wird, muss ich den Job und den Auslöser aus dem Scheduler löschen? Ich würde die Hilfe zu schätzen wissen. Ich verwende VS 2015 mit C#.

Und wenn ich den Windows-Dienst mache, initiiere ich einfach diese Quartz-Sache, die ich geschrieben habe? Entschuldigung, ich konnte nicht verstehen, was ich bisher gelesen habe.

Antwort

0

würde ich Hangfire IO über Quartz.net http://hangfire.io/

Sein ein moderneres Konzept für geplante Aufträge empfehlen. In der Vergangenheit habe ich auch Quartz.net benutzt. Vor allem benötigt die Verwendung von Hangfire keinen Service. Die Jobs sind persistent und Wiederholungen sind eingebaut. Die Syntax ist auch einfacher.

0

Ich habe Hangfire verwendet und es ist wunderbar und einfach.

Hangfire unterstützt jedoch Oracle db bisher nicht. Auch Quartz bietet mehr Flexibilität bei der Terminplanung (Kalender, Enddaten etc.).

Verwandte Themen