Hangfire funktioniert mit den meisten .NET-Plattformen:.NET Framework 4.5 oder neuer, .NET Core 1.0 oder neuer, alles, was mit . zu tun hat. NET Standard 1.3-kompatible Plattform. Sie können es mit fast jedem Anwendungsframework integrieren, einschließlich ASP.NET, ASP.NET Core, Konsolenanwendungen, Windows-Diensten, WCF und Community-Treibern wie Nancy oder ServiceStack.
Anwendbare Szenarien:Der Hintergrund sendet die E-Mail asynchron und gibt dem Nutzer so schnell wie möglich eine Antwort zurück. Geplante Ausführung von Aufgaben, zyklische Ausführung von Aufgaben, asynchrone Ausführung zeitaufwändiger Aufgaben, Abschluss von Aufgabe A, dann Ausführung von Aufgaben B sowie Batch-Ausführung von Aufgaben. So habe ich es früher gemacht:
Du kannst Hintergrundverarbeitung in ASP.NET Anwendung einbauen, ohne andere Prozesse wie Windows-Dienste zu verwenden. Hangfires Code ist bereit zum EinsatzUnerwartete Prozessbeendung, Recycling von Anwendungspools und Neustart。 Aufgrund der NutzungPersistente Speicherung, daher duEs gehen keine Hintergrundjobs verloren。
Zunächst sind die Darstellungen wie folgt:
Das obige Bild zeigt das Hangfire-Dashboard, das sehr nützlich ist und den Status von Hintergrundaufgaben überprüfen kann, und es ist außerdem sehr cool, daher muss es konfiguriert werden.
Die Dashboard-Benutzeroberfläche erfordert eine Startklasse, nur wenn duBeim Konfigurieren von Hangfire mit der Startup-Klasse,Dashboard-UIEs kann verwendet werden。
Zuerst habe ich das Hangfire-Dashboard-Dashboard nicht konfiguriert und bekam folgenden Fehler:
Die folgenden Fehler traten beim Versuch auf, die App zu laden. - Keine Assembler gefunden, die ein OwinStartupAttribut enthält. - Keine Assembly gefunden, die einen Startup oder [AssemblyName] enthält. Startkurs. Um die OWIN-Startentdeckung zu deaktivieren, fügen Sie in Ihrer web.config die appSetting owin:AutomaticAppStartup mit dem Wert "false" hinzu. Um die OWIN-Start-Assembly, Klasse oder Methode anzugeben, fügen Sie die appSetting owin:AppStartup mit dem voll qualifizierten Startklassen- oder Konfigurationsmethodennamen in Ihrer web.config hinzu.
Lösung:
Bei der Verwendung Global.asax.cs-basierter Initialisierung muss man möglicherweise auch die Startklassenerkennung von OWIN deaktivieren.
Wir kommen zum Punkt, das Tutorial beginnt:
1: Der Rahmen sollte den Bedürfnissen von Hangfire entsprechen,Mein Projekt ist .net 4.6.2, Du kannst Hangfire also normal installieren, .NET 4.0-Projekte müssen es nicht versuchen, nicht unterstützt!
2: Der Nuget-Befehl lautet wie folgt:
3: Die OWIN-Startkurs ist darauf ausgelegt, die Bootstrapping-Logik der Webanwendung an einem Ort zu halten. In Visual Studio 2013 können Sie es hinzufügen, indem Sie mit der rechten Maustaste auf das Projekt klicken und den Menüpunkt "Add/OWIN"-Startklasse auswählen. Wie unten gezeigt:
Erstelle eine neue Startup.cs-Datei im Root-Verzeichnis des Projekts.
4: KonfigurationDatenbank-Verbindungsstring, die SQL Server 2012-Version, die ich hier verwende, lautet die Konfiguration in web.config wie folgt:
5: Konfigurieren Sie das Hangfire-Dashboard, um auf den Filter zuzugreifen, erstellen Sie ein neuesHangfireAuthorizationFilter.csDatei.
Standardmäßig ist nur lokaler Zugriff auf das Hangfire-Dashboard erlaubt. Die Dashboard-Autorisierung muss so konfiguriert sein, dass sie Fernzugriff ermöglicht.
6: Konfigurieren Sie die Startup.cs-Klasse, der Code ist wie folgt:
7: Start eines Website-Projekts
Führe die Anwendung F5 aus, indem du den Debug-Modus drückst (dafür musst du die Ausgabe der Debug.WriteLine-Methode betrachten). Dann überprüfen Sie die folgende Nachricht im Ausgabefenster, um zu sehen, ob die Hintergrundverarbeitung erfolgreich gestartet wurde.
Gleichzeitig verfügt die Datenbank außerdem über 11 weitere Tabellen, um sicherzustellen, dass alle Aufgaben normal ausgeführt werden können und diese Aufgaben bei der IIS-Wiederherstellung oder dem Prozess-Neustart nicht verloren gehen, wie in der untenstehenden Abbildung dargestellt:
http://<your-web-app>/Hangfire Besuchen Sie die Dashboard-UI-URL, um die Darstellung oben im Artikel zu sehen.
Angehängte Verwendung
Fire-and-forget (veröffentlichen/abonnieren)
Dies ist die Hauptart von Hintergrundaufgabe, die die persistente Nachrichtenwarteschlange übernimmt. Wenn du eine Publish/Subscribe-Aufgabe erstellst, wird diese Aufgabe in der Standardwarteschlange gespeichert (die Standardwarteschlange ist "Default", aber mehrere Warteschlangen werden unterstützt). Mehrere engagierte Mitarbeiter hören diese Warteschlange ab, holen Aufgaben daraus und erledigen Aufgaben.
Verzögerung
Wenn Sie die Ausführung bestimmter Aufgaben verzögern möchten, können Sie die folgenden Aufgaben verwenden. Nach einer bestimmten Verzögerungszeit wird die Aufgabe wie eine Publish/Subscribe-Aufgabe in die Warteschlange gestellt und ausgeführt.
Schleife
Um die Methode nach Periodizität (Stunden, Tage usw.) aufzurufen, verwenden Sie die Klasse RecurringJob. In komplexen Szenarien können Sie CRON-Ausdrücke verwenden, um eine geplante Zeit für die Bearbeitung von Aufgaben anzugeben.
Kontinuierlich
Continuity ermöglicht es dir, komplexe Arbeitsabläufe zu definieren, indem du mehrere Hintergrundaufgaben miteinander verknüpfst.
Offizieller Dokumentationslink:Der Hyperlink-Login ist sichtbar.
(Ende)
|