2016-10-03 2 views
4

Ich habe Anforderungen, wo ich einige Aufgaben dauerhaft ausführen muss, während einige andere sollten nur auf einer geplanten Basis ausgeführt werden, aber ich bin mir nicht sicher, was der beste Weg, um dieses Szenario zu behandeln sein sollte .Das beste Design für permanente und geplante Aufgaben

Für die geplanten Jobs, dachte ich, ich würde einen Thread-Pool verwenden und für Jobs, die permanent ausgeführt werden, dachte ich, ich hätte nur eine Reihe von Threads, die erstellt und gestartet werden, wie meine Windows Service startet.

Ist das ein korrekter und/oder bester Ansatz oder gibt es einen besseren Weg, damit umzugehen?

Beachten Sie, dass ich einen laufenden Job abbrechen kann, egal ob er geplant und/oder permanent ausgeführt wird.

Dank

PS: Bitte beachten Sie, diese Frage völlig neu formuliert wurde, wie es ursprünglich zu breit war. Ich hoffe, das ist ein besserer Versuch.

UPDATE:

Bitte beachten Sie diese Frage nicht über einen Scheduler Problem ist, sondern mehr auf das, was ist der beste Ansatz meine Themen zu behandeln basiert auf meiner 2-Anforderungen heißt vs kontinuierliche geplant.

Entschuldigung für irgendeine Verwirrung.

+0

Ich fürchte, Ihre Frage wird zu breit für eine Antwort. – Fabio

+0

@Fabio Du hast Recht. Ich werde es umformulieren und meine Frage vereinfachen. Danke für die Rückmeldung. – Thierry

Antwort

2

Schreiben Sie Ihren eigenen Scheduler ist not as trivial, wie es scheinen mag. In diesem Sinne gibt es nur zwei zuverlässige Optionen: Verwenden Sie Quartz.NET (was ich persönlich empfehle) oder verwenden Sie Windows Scheduler.

Quartz.NET hat etwas von einer Lernkurve (nicht sehr steil, obwohl), und Windows Scheduler (wenn Schnittstelle mit der Verwendung TSMW) hat, nach meinem Geschmack, eine sehr umständliche API.

+0

Hallo Anton, danke für die Rückmeldung, aber jetzt, da ich meine Frage vereinfacht habe, weil sie zu weit gefasst war, habe ich das Gefühl, sie erklärt nicht richtig, was meine eigentliche Frage ist. Mein Problem ist nicht mit dem Scheduler. Ich habe in der Vergangenheit entworfen und wie Sie sagten, es war überhaupt belanglos. Meine Sorge ist, wie man das Threading in Bezug auf geplante Jobs und permanent laufende Jobs am besten angehen kann. Wäre die Verwendung des Threadpools für geplante Jobs in Ordnung, während die permanent ausgeführten Jobs in Hintergrundthreads gespeichert werden, oder gibt es dafür einen besseren Weg? Sorry für die Verwirrung, wenn überhaupt. – Thierry

Verwandte Themen