Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 61378|Svar: 6

[ASP.NET] asp.net bakgrundsuppgift Hangfire-ramverkets handledning

[Kopiera länk]
Publicerad på 2019-05-24 09:51:10 | | | |
Hangfire fungerar med de flesta .NET-plattformar:.NET Framework 4.5 eller senare, .NET Core 1.0 eller senare, allt relaterat till . NET Standard 1.3-kompatibel plattform. Du kan integrera det med nästan vilket applikationsramverk som helst, inklusive ASP.NET, ASP.NET Core, konsolapplikationer, Windows-tjänster, WCF och communitydrivrutiner som Nancy eller ServiceStack.

Tillämpliga scenarier:Bakgrunden skickar mejlet asynkront och svarar användaren så snart som möjligt. Schemalagd exekvering av uppgifter, cyklisk exekvering av uppgifter, asynkron exekvering av tidskrävande uppgifter, slutförande av uppgift A-exekvering och sedan exekvering av B-uppgifter, samt batchkörning av uppgifter.
Så här brukade jag göra:

c# kapslar in en universell QueueHelper-kö
https://www.itsvse.com/thread-5029-1-1.html
(Källa: Architect_Programmer)


Du kan lägga bakgrundsbearbetning i ASP.NET applikation utan att använda andra processer som Windows-tjänster. Hangfires kod är redo för utplaceringOväntad processavslutning, återvinning av applikationspoolen och omstart。 På grund av användningenPersistent lagring, alltså duInga bakgrundsjobb går förlorade

För det första är renderingarna följande:




Bilden ovan är Hangfire Dashboard-instrumentpanelen, som är mycket användbar och kan kontrollera status på bakgrundsuppgifter, och den är också väldigt häftig, så den måste konfigureras.

Dashboard-gränssnittet kräver en startkurs, endast om duNär jag konfigurerar Hangfire med Startup-klassen,Dashboard UIDen kan användas

Först konfigurerade jag inte Hangfire Dashboard-dashboarden och fick följande fel:

Följande fel uppstod när jag försökte ladda appen.
- Ingen assembler hittades som innehåller ett OwinStartupAttribute.
- Ingen assembler hittades som innehåller en Startup eller [AssemblyName]. Startkurs.
För att inaktivera upptäckt av OWIN-uppstart, lägg till appSetting owin:AutomaticAppStartup med värdet "false" i din web.config.
För att specificera OWIN-startup-assembly, klass eller metod, lägg till appSetting owin:AppStartup med namnet på den fullt kvalificerade startup-klassen eller konfigurationsmetoden i din web.config.



Lösning:

När du använder Global.asax.cs-baserad initialisering kan du också behöva inaktivera OWINS uppstartsklassdetektering.

Vi börjar komma till saken, handledningen börjar:

1: Ramen ska möta behoven för hangfire,Mitt projekt är .net 4.6.2, Så du kan installera hangfire som vanligt, .NET 4.0-projekt behöver inte försöka, det stöds inte!

2: Nuget-kommandot är följande:

3: OWIN Startup-klassen är utformad för att hålla webbapplikationens bootstrappningslogik på ett ställe. I Visual Studio 2013 kan du lägga till det genom att högerklicka på projektet och välja menypunkten Add/OWIN Startup Class. Som visas nedan:



Skapa en ny Startup.cs-fil i projektets rotkatalog.

4: KonfigurationDatabasanslutningssträng, SQL Server 2012-versionen jag använder här, konfigurationen i web.config är följande:

5: Konfigurera Hangfire-dashboarden för att komma åt filtret, skapa en nyHangfireAuthorizationFilter.csFil.

Som standard är endast lokal åtkomst till Hangfire-instrumentpanelen tillåten. Dashboard-auktorisering måste konfigureras för att tillåta fjärråtkomst.


6: Konfigurera Startup.cs-klassen, koden är följande:


7: Starta ett webbplatsprojekt

Kör applikationen F5 genom att trycka på debug-läget (detta kräver att du tittar på utdata från metoden Debug.WriteLine). Kontrollera sedan följande meddelande i utdatafönstret för att se om bakgrundsbearbetningen har startat framgångsrikt.



Samtidigt har databasen också 11 ytterligare tabeller för att säkerställa att alla uppgifter kan utföras normalt, och att uppgifterna inte går förlorade vid IIS-återvinning eller processomstart, som visas i figuren nedan:



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

Besök webbadressen till Dashboard UI för att se renderingen högst upp i artikeln.

Ansluten användning

Fire-and-forget (publicera/prenumerera)

Detta är den huvudsakliga typen av bakgrundsuppgift som den persistenta meddelandekön hanterar. När du skapar en publicera/prenumerera uppgift sparas uppgiften i standardkön (standardkön är "Standard", men flera köer stöds). Flera dedikerade arbetare lyssnar på denna kö och hämtar uppgifter därifrån och slutför uppgifter.


Fördröjning

Om du vill fördröja genomförandet av vissa uppgifter kan du använda följande uppgifter. Efter en given fördröjningstid köas uppgiften och körs som en publicera/prenumerera-uppgift.

Loop

För att anropa metoden efter periodicitet (timmar, dagar, etc.), använd klassen RecurringJob. I komplexa scenarier kan du använda CRON-uttryck för att ange en schemalagd tid för att hantera uppgifter.


Kontinuerlig

Kontinuitet gör det möjligt att definiera komplexa arbetsflöden genom att länka ihop flera bakgrundsuppgifter.


Officiell dokumentationslänk:Inloggningen med hyperlänken är synlig.

(Slut)






Föregående:Videodataalgoritmen delar anteckningar
Nästa:Begäran avbruten: Misslyckades med att skapa en SSL/TLS-säker kanallösning
Publicerad på 2019-05-24 10:12:25 |
Detta inlägg redigerades senast av YuAn den 2019-5-24 kl. 10:20

Bra artikel lärd
Publicerad på 2019-05-24 10:12:46 |
Stödstöd
Publicerad på 2021-09-17 21:59:44 |

Stödstöd
Publicerad på 2022-09-26 22:20:45 |
Support, lär dig använda det
Publicerad på 2022-11-12 19:02:23 |

Support, lär dig använda det
Publicerad på 2023-03-25 09:45:31 |

Support, lär dig använda det
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com