Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 61378|Antwoord: 6

[ASP.NET] asp.net achtergrondtaak hangfire framework tutorial

[Link kopiëren]
Geplaatst op 24-05-2019 09:51:10 | | | |
Hangfire werkt met de meeste .NET-platforms:.NET Framework 4.5 of later, .NET Core 1.0 of later, alles wat met . te maken heeft. NET Standard 1.3-compatibel platform. Je kunt het integreren met bijna elk applicatieframework, waaronder ASP.NET, ASP.NET Core, consoleapplicaties, Windows-diensten, WCF en communitydrivers zoals Nancy of ServiceStack.

Toepasselijke scenario's:De achtergrond stuurt de e-mail asynchroon en geeft zo snel mogelijk een antwoord terug aan de gebruiker. Geplande uitvoering van taken, cyclische uitvoering van taken, asynchrone uitvoering van tijdrovende taken, voltooiing van taak A uitvoering en vervolgens uitvoering van taken B, en batchuitvoering van taken.
Hoe ik het vroeger deed:

c# encapsuleert een universele QueueHelper-wachtrij
https://www.itsvse.com/thread-5029-1-1.html
(Bron: Architect_Programmer)


Je kunt achtergrondverwerking in ASP.NET applicatie zetten zonder andere processen zoals Windows-services te gebruiken. De code van Hangfire is klaar voor inzetOnverwachte procesbeëindiging, applicatiepoolrecycling en herstart。 Door het gebruikPersistente opslag, vandaar jijEr gaan geen achtergrondbanen verloren

Ten eerste zijn de renderings als volgt:




De bovenstaande afbeelding is het Hangfire Dashboard-dashboard, dat erg handig is en de status van achtergrondtaken kan controleren, en het is ook erg gaaf, dus het moet geconfigureerd worden.

De dashboard-UI vereist een opstartklasse, alleen als jeBij het configureren van Hangfire met de Startup-klasse,Dashboard UIHet kan gebruikt worden

In het begin heb ik het Hangfire Dashboard-dashboard niet geconfigureerd en kreeg ik de volgende foutmelding:

De volgende fouten deden zich voor bij het proberen van de app te laden.
- Geen assembly gevonden met een OwinStartupAttribute.
- Geen assembly gevonden met een Startup of [AssemblyName]. Startup-cursus.
Om de opstartontdekking van OWIN uit te schakelen, voeg je de appSetting owin:AutomaticAppStartup toe met de waarde "false" in je web.config.
Om de OWIN-startup Assembly, Klasse of Methode te specificeren, voeg je de appSetting owin:AppStartup toe met de volledig gekwalificeerde opstartklasse of configuratiemethodnaam in je web.config.



Oplossing:

Bij het gebruik van Global.asax.cs-gebaseerde initialisatie moet je mogelijk ook de detectie van opstartklassen in OWIN uitschakelen.

We komen bij het punt, de tutorial begint:

1: Het kader moet voldoen aan de behoeften van hangfire,Mijn project is .net 4.6.2, Dus je kunt Hangfire normaal installeren, .NET 4.0-projecten hoeven het niet te proberen, worden niet ondersteund!

2: Het nuget-commando is als volgt:

3: De OWIN Startup-klasse is ontworpen om de bootstrappinglogica van de webapplicatie op één plek te houden. In Visual Studio 2013 kun je het toevoegen door met de rechtermuisknop op het project te klikken en het menu-item Add/OWIN Startup Class te selecteren. Zoals hieronder getoond:



Maak een nieuw Startup.cs-bestand aan in de rootmap van het project.

4: Configuratiedatabaseverbindingsstring, de SQL Server 2012-versie die ik hier gebruik, is de configuratie in web.config als volgt:

5: Configureer het Hangfire-dashboard om toegang te krijgen tot het filter, maak een nieuw aanHangfireAuthorizationFilter.csBestand.

Standaard is alleen lokale toegang tot het Hangfire Dashboard toegestaan. Dashboardautorisatie moet zo worden geconfigureerd dat externe toegang mogelijk is.


6: Configureer de Startup.cs klasse, de code is als volgt:


7: Start een websiteproject

Voer de applicatie F5 uit door op debugmodus te drukken (dit vereist dat je naar de output van de Debug.WriteLine-methode kijkt). Controleer vervolgens het volgende bericht in het Output-venster om te zien of de achtergrondverwerking succesvol is gestart.



Tegelijkertijd heeft de database ook 11 extra tabellen om ervoor te zorgen dat alle taken normaal kunnen worden uitgevoerd en dat de taken niet verloren gaan bij IIS-herstel of procesherstart, zoals weergegeven in de onderstaande figuur:



http://<your-web-app>/hangfire

Bezoek de Dashboard UI URL om de rendering bovenaan het artikel te zien.

Aangesloten gebruik

Fire-and-forget (publiceren/abonneren)

Dit is het belangrijkste type achtergrondtaak dat de persistente berichtwachtrij afhandelt. Wanneer je een publiceer/abonneer-taak aanmaakt, wordt de taak opgeslagen in de standaardwachtrij (de standaardwachtrij is "Standaard", maar meerdere wachtrijen worden ondersteund). Meerdere toegewijde medewerkers luisteren naar deze wachtrij en halen taken eruit en voltooien taken.


Vertraging

Als je de uitvoering van bepaalde taken wilt vertragen, kun je de volgende taken gebruiken. Na een bepaalde vertragingstijd wordt de taak in de wachtrij gezet en uitgevoerd zoals een publiceer/abonneertaak.

Loop

Om de methode aan te roepen op periodiciteit (uren, dagen, enz.), gebruik je de RecurringJob-klasse. In complexe scenario's kun je CRON-expressies gebruiken om een geplande tijd voor het verwerken van taken aan te geven.


Continu

Continuïteit stelt je in staat om complexe workflows te definiëren door meerdere achtergrondtaken aan elkaar te koppelen.


Officiële documentatielink:De hyperlink-login is zichtbaar.

(Einde)






Vorig:Videodata-algoritme deelt notities
Volgend:Verzoek afgebroken: Mislukt in het creëren van een SSL/TLS veilige kanaaloplossing
Geplaatst op 24-05-2019 10:12:25 |
Dit bericht is voor het laatst bewerkt door YuAn op 24-5-2019 om 10:20

Mooi artikel geleerd
Geplaatst op 24-05-2019 10:12:46 |
Ondersteuning
Geplaatst op 17-09-2021 21:59:44 |

Ondersteuning
Geplaatst op 26-09-2022 22:20:45 |
Ondersteun, leer hoe je het gebruikt
Geplaatst op 12-11-2022 19:02:23 |

Ondersteun, leer hoe je het gebruikt
Geplaatst op 25-03-2023 09:45:31 |

Ondersteun, leer hoe je het gebruikt
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com