2017-01-19 1 views
-3

Ich habe einige Aufgaben, die mehr als 30 Minuten dauern. Ich habe keine Idee über, wie man diese Art Aufgaben aufrechterhält. Bitte helfen Sie mir auf diesemWas sind die effektiven Möglichkeiten, um die im Hintergrund laufenden Aufgaben in asp.net zu erhalten?

+0

Wahrscheinlich am besten nicht, sie auf einen Webserver sowieso zu setzen. Lassen Sie Ihren Web-Server Web-Anfragen bearbeiten. Setzen Sie die Hintergrundverarbeitung auf einen Anwendungsserver. – mason

+1

Da Sie sich entschieden haben, die Ergebnisse Ihrer Recherche nicht einzubeziehen (zB https://www.google.com/search?q=background+running+tasks+in+asp.net), ist es schwer zu erkennen, was Sie bereits versucht haben . Das Standard-Duplikat sollte also die Grundlagen abdecken. Zeigen Sie bei zukünftigen Fragen die Ergebnisse Ihrer Recherche. –

Antwort

2

Ich habe Hangfire für eines meiner Projekte für Hintergrundaufgabe verwendet, und ich fand es extrem gut.

Hangfire ist ein Open-Source-Framework, mit dem Sie Ihre Hintergrundjobs erstellen, verarbeiten und verwalten können. Es kommt mit Out-of-the-Box-Dashboard, um Ihren Hintergrundjob und viele weitere coole Funktionen zu verfolgen.

Die Dokumentation ist sehr gut, um mit dem Tool zu beginnen. Sie finden die Dokumentation here.

1

Es muss sowohl asynchron als auch verteilt (möglicherweise) sein. In unserem Projekt verwenden wir Akka.Net, um solche Aufgaben zu erledigen. Es verwendet das Akteurmodell, das im Wesentlichen Teil des Codes ist, den Sie bitten, Ihre langen async Aufgaben außer Sicht im Hintergrund zu machen.

http://getakka.net/

http://getakka.net/docs/Getting%20started

var greeter = system.ActorOf<GreetingActor>("greeter"); 
greeter.Tell(new Greet("World")); 

Anstelle von GreetingActor, werden Sie Ihren langen laufenden Prozess haben und in der zweiten Zeile des Codes, ist ihm eine Nachricht übergeben, die es async laufen erzählt. Es gibt auch eine <actor>.Ask() in Fällen, wenn Sie es benötigen, um synchronous zu sein.

Verwandte Themen