Ich entwickle eine .NET 4-Anwendung, die die Ausführung eines Back-End-Worker-Threads erfordert. Dieser Thread besteht hauptsächlich aus dem folgenden Code:
%Vor%Die ASP.NET-App ist nur ein Frontend für die Datenbank.
Meine Frage ist, wo der beste Platz für diese Arbeiterschleife sein würde. Es sieht so aus, als wären meine beiden ersten Möglichkeiten (1), es von der Application_Start
-Methode abzukoppeln und es einfach laufen zu lassen, oder (2) es in einem separaten Prozess zu bündeln (Windows-Dienst?)
(1) würde offensichtlich eine gewisse Logik im ASP.NET-Code benötigen, um zu überprüfen, ob sie noch läuft, da IIS sie möglicherweise abbricht. Es ist auch ziemlich ordentlich, dass die gesamte Anwendungslogik in einem einfach zu installierenden Paket liegt. (2) ist viel segregierter, fühlt sich aber viel unordentlicher an.
Was ist der beste Ansatz?
Ich würde mich nach Möglichkeit stark für den Windows-Dienst entscheiden. Hintergrund-Threading in ASP.NET kommt mit viel Gepäck .
Und noch viel mehr.
Betrachten Sie etwas Einfaches wie Hangfire und denken Sie dann an Die Design-Punkte in dieser verwandten Antwort .
Tags und Links .net asp.net threadpool