Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 61378|Svar: 6

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

[Kopier link]
Opslået på 24/05/2019 09.51.10 | | | |
Hangfire fungerer med de fleste .NET-platforme:.NET Framework 4.5 eller nyere, .NET Core 1.0 eller nyere, alt relateret til . NET Standard 1.3-kompatibel platform. Du kan integrere det med næsten ethvert applikationsframework, inklusive ASP.NET, ASP.NET Core, konsolapplikationer, Windows-tjenester, WCF og fællesskabsdrivere som Nancy eller ServiceStack.

Relevante scenarier:Baggrunden sender e-mailen asynkront og returnerer et svar til brugeren så hurtigt som muligt. Planlagt udførelse af opgaver, cyklisk udførelse af opgaver, asynkron udførelse af tidskrævende opgaver, gennemførelse af opgave A udførelse og derefter udførelse af B opgaver, samt batchudførelse af opgaver.
Sådan plejede jeg at gøre det:

c# indkapsler en universel QueueHelper-kø
https://www.itsvse.com/thread-5029-1-1.html
(Kilde: Architect_Programmer)


Du kan lægge baggrundsbehandling i ASP.NET applikation uden at bruge andre processer som Windows-tjenester. Hangfires kode er klar til udrulningUventet procesafslutning, genbrug af applikationspoolen og genstart。 På grund af brugenVedvarende lagring, altså digIngen baggrundsjob går tabt

For det første er gengivelserne som følger:




Billedet ovenfor er Hangfire Dashboard-dashboardet, som er meget nyttigt og kan tjekke status på baggrundsopgaver, og det er også meget fedt, så det skal konfigureres.

Dashboard-UI'en kræver en opstartsklasse, kun hvis duNår jeg konfigurerer Hangfire med Startup-klassen,Dashboard-brugerfladeDen kan bruges

Først konfigurerede jeg ikke Hangfire Dashboard-dashboardet og fik følgende fejl:

Følgende fejl opstod under forsøget på at indlæse appen.
- Ingen assembly fundet, der indeholder en OwinStartupAttribute.
- Ingen assembly fundet, der indeholder en Startup eller [AssemblyName]. Startup-kursus.
For at deaktivere OWIN startup-opdagelse skal appSetting owin:AutomaticAppStartup tilføjes med værdien "false" i din web.config.
For at specificere OWIN-opstartssamlingen, klassen eller metoden, tilføj appSetting owin:AppStartup med den fuldt kvalificerede opstartsklasse eller konfigurationsmetodenavn i din web.config.



Opløsning:

Når du bruger Global.asax.cs-baseret initialisering, kan du også være nødt til at deaktivere OWIN's opstartsklassedetektion.

Vi begynder at komme til pointen, tutorialen begynder:

1: Rammen skal opfylde behovene for hangfire,Mit projekt er .net 4.6.2, Så du kan installere Hangfire normalt, .NET 4.0-projekter behøver ikke prøve, det understøttes ikke!

2: Nuget-kommandoen er som følger:

3: OWIN Startup-klassen er designet til at holde webapplikationens bootstrapping-logik samlet ét sted. I Visual Studio 2013 kan du tilføje det ved at højreklikke på projektet og vælge menupunktet Add/OWIN Startup Class. Som vist nedenfor:



Opret en ny Startup.cs-fil i projektets rodmappe.

4: KonfigurationDatabaseforbindelsesstreng, SQL Server 2012-versionen jeg bruger her, konfigurationen i web.config er som følger:

5: Konfigurer Hangfire-dashboardet til at få adgang til filteret, og opret et nytHangfireAuthorizationFilter.csFil.

Som standard er kun lokal adgang til Hangfire Dashboardet tilladt. Dashboard-autorisation skal konfigureres til at tillade fjernadgang.


6: Konfigurer Startup.cs-klassen, koden er som følger:


7: Start et websiteprojekt

Kør applikationen F5 ved at trykke på debug-tilstand (det kræver, at du ser på outputtet fra Debug.WriteLine-metoden). Tjek derefter følgende besked i Output-vinduet for at se, om baggrundsbehandlingen er startet med succes.



Samtidig har databasen også 11 yderligere tabeller for at sikre, at alle opgaver kan udføres normalt, og at opgaverne ikke går tabt under IIS-genopretning eller procesgenstart, som vist i figuren nedenfor:



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

Besøg Dashboard UI-URL'en for at se renderingen øverst i artiklen.

Tilknyttet brug

Fire-and-forget (udgiv/abonner)

Dette er den primære type baggrundsopgave, som den vedvarende beskedkø håndterer. Når du opretter en publicér/abonner-opgave, gemmes opgaven i standardkøen (standardkøen er "Standard", men flere køer understøttes). Flere dedikerede medarbejdere lytter til denne kø og henter opgaver derfra og udfører opgaver.


Forsinkelse

Hvis du vil udsætte udførelsen af visse opgaver, kan du bruge følgende opgaver. Efter en given forsinkelsestid sættes opgaven i kø og udføres som en publicér/abonner-opgave.

Loop

For at kalde metoden efter periodicitet (timer, dage osv.), brug klassen RecurringJob. I komplekse scenarier kan du bruge CRON-udtryk til at angive et planlagt tidspunkt for at behandle opgaver.


Kontinuerlig

Kontinuitet giver dig mulighed for at definere komplekse arbejdsgange ved at forbinde flere baggrundsopgaver.


Officiel dokumentationslink:Hyperlink-login er synlig.

(Slut)






Tidligere:Videodata-algoritmen deler noter
Næste:Anmodning afbrudt: Kunne ikke oprette en SSL/TLS sikker kanalløsning
Opslået på 24/05/2019 10.12.25 |
Dette indlæg blev sidst redigeret af YuAn den 24-5-2019 kl. 10:20

Flot artikel lært
Opslået på 24/05/2019 10.12.46 |
Støtte Støtte
Opslået på 17/09/2021 21.59.44 |

Støtte Støtte
Opslået på 26/09/2022 22.20.45 |
Støtte, lær hvordan du bruger det
Opslået på 12/11/2022 19.02.23 |

Støtte, lær hvordan du bruger det
Opslået på 25/03/2023 09.45.31 |

Støtte, lær hvordan du bruger det
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com