Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 61378|Svare: 6

[ASP.NET] asp.net Bakgrunnsoppgave Hangfire Framework veiledning

[Kopier lenke]
Publisert på 24.05.2019 09:51:10 | | | |
Hangfire fungerer med de fleste .NET-plattformer:.NET Framework 4.5 eller nyere, .NET Core 1.0 eller nyere, alt relatert til . NET Standard 1.3-kompatibel plattform. Du kan integrere det med nesten hvilket som helst applikasjonsrammeverk, inkludert ASP.NET, ASP.NET Core, konsollapplikasjoner, Windows-tjenester, WCF og fellesskapsdrivere som Nancy eller ServiceStack.

Relevante scenarier:Bakgrunnen sender e-posten asynkront og returnerer et svar til brukeren så snart som mulig. Planlagt utførelse av oppgaver, syklisk utførelse av oppgaver, asynkron utførelse av tidkrevende oppgaver, fullføring av oppgave A og deretter utførelse av oppgaver B, samt batchutførelse av oppgaver.
Slik pleide jeg å gjøre det:

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


Du kan legge bakgrunnsprosessering i ASP.NET applikasjon uten å bruke andre prosesser som Windows-tjenester. Hangfires kode er klar for utrullingUventet prosessavslutning, resirkulering av applikasjonspoolen og omstart。 På grunn av brukenVedvarende lagring, altså degIngen bakgrunnsjobber går tapt

Først er gjengivelsene som følger:




Bildet over er Hangfire Dashboard-dashbordet, som er veldig nyttig og kan sjekke status på bakgrunnsoppgaver, og det er også veldig kult, så det må konfigureres.

Dashbordgrensesnittet krever en oppstartsklasse, bare hvis duNår jeg konfigurerer Hangfire med Startup-klassen,DashbordgrensesnittDen kan brukes

Først konfigurerte jeg ikke Hangfire Dashboard-dashbordet og fikk følgende feilmelding:

Følgende feil oppsto under forsøk på å laste appen.
- Ingen assembler funnet som inneholder en OwinStartupAttribute.
- Ingen samling funnet som inneholder en oppstart eller [AssemblyName]. Oppstartskurs.
For å deaktivere OWIN-oppstartsoppdagelse, legg til appSetting owin:AutomaticAppStartup med verdien "false" i web.config din.
For å spesifisere OWIN-oppstartsassembly, klasse eller metode, legg til appSetting owin:AppStartup med det fullt kvalifiserte oppstartsklassen eller konfigurasjonsmetodenavnet i web.config-en din.



Løsning:

Når du bruker Global.asax.cs-basert initialisering, kan det også være nødvendig å deaktivere OWINS oppstartsklassedeteksjon.

Vi begynner å komme til poenget, opplæringen begynner:

1: Rammeverket bør møte behovene til hangfire,Prosjektet mitt er .net 4.6.2, Så, du kan installere Hangfire som vanlig, .NET 4.0-prosjekter trenger ikke å prøve, det støttes ikke!

2: Nuget-kommandoen er som følger:

3: OWIN-oppstartsklassen er designet for å holde webapplikasjonens oppstarts-logikk samlet på ett sted. I Visual Studio 2013 kan du legge det til ved å høyreklikke på prosjektet og velge menypunktet Add/OWIN Startup Class. Som vist nedenfor:



Opprett en ny Startup.cs-fil i prosjektets rotmappe.

4: KonfigurasjonDatabaseforbindelsesstreng, SQL Server 2012-versjonen jeg bruker her, konfigurasjonen i web.config er som følger:

5: Konfigurer Hangfire-dashbordet til å få tilgang til filteret, lag et nyttHangfireAuthorizationFilter.csFil.

Som standard er kun lokal tilgang til Hangfire-dashbordet tillatt. Dashbordautorisasjon må konfigureres for å tillate fjernaksess.


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


7: Start et nettsideprosjekt

Kjør applikasjonen F5 ved å trykke på debug-modus (dette krever at du ser på utdataene til Debug.WriteLine-metoden). Sjekk deretter følgende melding i utdata-vinduet for å se om bakgrunnsbehandlingen har startet vellykket.



Samtidig har databasen også 11 flere tabeller for å sikre at alle oppgaver kan utføres normalt, og at oppgavene ikke vil gå tapt under IIS-gjenoppretting eller prosessomstart, som vist i figuren under:



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

Besøk Dashboard UI-URL-en for å se gjengivelsen øverst i artikkelen.

Tilknyttet bruk

Fire-and-forget (publiser/abonner)

Dette er hovedtypen bakgrunnsoppgave som den vedvarende meldingskøen håndterer. Når du oppretter en publish/subscribe-oppgave, lagres oppgaven i standardkøen (standardkøen er "Default", men flere køer støttes). Flere dedikerte arbeidere lytter til denne køen og henter oppgaver fra den og fullfører oppgaver.


Forsinkelse

Hvis du vil utsette utførelsen av visse oppgaver, kan du bruke følgende oppgaver. Etter en gitt forsinkelsestid blir oppgaven satt i kø og utført som en publish/subscribe-oppgave.

Loop

For å kalle metoden etter periodisitet (timer, dager osv.), bruk klassen RecurringJob. I komplekse scenarioer kan du bruke CRON-uttrykk for å spesifisere et planlagt tidspunkt for å behandle oppgaver.


Kontinuerlig

Kontinuitet lar deg definere komplekse arbeidsflyter ved å koble flere bakgrunnsoppgaver sammen.


Offisiell dokumentasjonslenke:Innloggingen med hyperkoblingen er synlig.

(Slutt)






Foregående:Videodataalgoritmen deler notater
Neste:Forespørsel avbrutt: Klarte ikke å lage en SSL/TLS-sikker kanalløsning
Publisert på 24.05.2019 10:12:25 |
Dette innlegget ble sist redigert av YuAn 24.05.2019 kl. 10:20

Fin artikkel lært
Publisert på 24.05.2019 10:12:46 |
Støttestøtte
Publisert på 17.09.2021 21:59:44 |

Støttestøtte
Publisert på 26.09.2022 22:20:45 |
Support, lær deg å bruke det
Publisert på 12.11.2022 19:02:23 |

Support, lær deg å bruke det
Publisert på 25.03.2023 09:45:31 |

Support, lær deg å bruke det
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com