Hinzufügen und Entfernen von Jobs dynamisch zum Quartz.NET Windows-Dienst

8

Ich entwickle eine E-Mail-Marketing-Anwendung WinForm . Und für die Planung von Kampagnen habe ich mich entschieden, Quartz.NET zu verwenden. Ich muss es als Windows-Dienst ausführen. Ich möchte aber auch, dass der Benutzer einen Job (z. B. eine Kampagne, die jeden Tag um 8:00 Uhr ausgeführt werden muss, die im Wesentlichen eine BAT-Datei ausführt) über das Programm zum Dienst hinzufügen kann.

Ich speichere auch alle Jobpläne in der Datenbank, so dass beim Stoppen / Starten des Betriebssystems oder Windows-Dienstes immer noch alle Jobs gelesen werden können, die ausgeführt werden müssen.

Wie kann ich dem Dienst einen Auftrag hinzufügen, während der Dienst ausgeführt wird? Das dynamische Hinzufügen / Entfernen des Jobs zu dem Dienst ist natürlich sehr bevorzugt. Den Dienst zu stoppen und alle Jobs erneut aus der Datenbank zu lesen, ist, um ehrlich zu sein, mein letzter Ausweg.

    
Disasterkid 18.09.2014, 08:36
quelle

1 Antwort

7

Sie können Quartz.Net als Windows-Dienst installieren und für die Verwendung von AdoJobStore konfigurieren.
Ihre WinForm Anwendung wird die Schnittstelle sein, auf der Sie Jobs und Trigger hinzufügen, aussetzen und entfernen können.

Sie müssen Ihre windows services nicht stoppen, während Sie das tun.

Sie müssen Ihre Datenbank nicht lesen, um herauszufinden, was in Quartz passiert, aber Sie müssen die bereitgestellten APIs verwenden.

Ich habe etwas Ähnliches vor langer Zeit gemacht; Mein Quartz.net "Manager" war eine Webanwendung.

Sie können meine Antwort hier lesen.

Ich denke, die Schritte, um das zu tun, was Sie suchen, sind ziemlich gleich.

Referenz zu Quartz.net-Beispielen und einem kostenlosen Buch finden Sie hier und hier .

    
LeftyX 19.09.2014, 09:19
quelle