Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 61378|Antwort: 6

[ASP.NET] asp.net Hintergrundaufgaben-Hangfire-Framework-Tutorial

[Link kopieren]
Veröffentlicht am 24.05.2019 09:51:10 | | | |
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:

c# kapselt eine universelle QueueHelper-Warteschlange
https://www.itsvse.com/thread-5029-1-1.html
(Quelle: Architect_Programmer)


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)






Vorhergehend:Videodatenalgorithmus teilt Hinweise
Nächster:Anfrage abgebrochen: Keine SSL/TLS-sichere Kanallösung erstellt
Veröffentlicht am 24.05.2019 10:12:25 |
Dieser Beitrag wurde zuletzt von YuAn am 24.05.20 2019 um 10:20 Uhr bearbeitet

Schöner Artikel gelernt
Veröffentlicht am 24.05.2019 10:12:46 |
Unterstützungsunterstützung
Veröffentlicht am 17.09.2021 21:59:44 |

Unterstützungsunterstützung
Veröffentlicht am 26.09.2022 22:20:45 |
Support, lerne, wie man es benutzt
Veröffentlicht am 12.11.2022 19:02:23 |

Support, lerne, wie man es benutzt
Veröffentlicht am 25.03.2023 09:45:31 |

Support, lerne, wie man es benutzt
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com