Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 61378|Vastaus: 6

[ASP.NET] asp.net taustatehtävän hangfire-kehysopas

[Kopioi linkki]
Julkaistu 24.5.2019 9.51.10 | | | |
Hangfire toimii useimmilla .NET-alustoilla:.NET Framework 4.5 tai uudempi, .NET Core 1.0 tai uudempi, kaikki siihen liittyvä . NET Standard 1.3 -yhteensopiva alusta. Voit integroida sen lähes mihin tahansa sovelluskehykseen, mukaan lukien ASP.NET, ASP.NET Core, konsolisovellukset, Windows-palvelut, WCF ja yhteisöajureet kuten Nancy tai ServiceStack.

Sovellettavat skenaariot:Tausta lähettää sähköpostin asynkronisesti ja vastaa käyttäjälle mahdollisimman pian. Tehtävien aikataulutettu suoritus, syklinen suoritus, aikaa vievien tehtävien asynkroninen suoritus, tehtävän A suorittaminen ja sitten B-tehtävien suorittaminen sekä tehtävien eräajo.
Miten minä tein sen ennen:

c# kapseloi universaalin QueueHelper-jonon
https://www.itsvse.com/thread-5029-1-1.html
(Lähde: Architect_Programmer)


Voit laittaa taustakäsittelyn ASP.NET sovellukseen ilman muita prosesseja, kuten Windows-palveluita. Hangfiren koodi on valmis käyttöönotettavaksiYllättävä prosessin päättäminen, sovelluspoolin kierrätys ja uudelleenkäynnistys。 Käytön vuoksiPysyvä tallennus, siksi sinäTaustatyöpaikkoja ei menetetä

Ensinnäkin renderöinnit ovat seuraavat:




Yllä oleva kuva on Hangfire Dashboard -hallintapaneeli, joka on erittäin hyödyllinen ja voi tarkistaa taustatehtävien tilan, ja se on myös todella siisti, joten se täytyy konfiguroida.

Dashboardin käyttöliittymä vaatii käynnistyskurssin, vain josKun konfiguroidaan Hangfirea Startup-luokalla,Dashboard-käyttöliittymäSitä voidaan käyttää

Aluksi en konfiguroinut Hangfire Dashboardin hallintapaneelia ja sain seuraavan virheen:

Seuraavat virheet tapahtuivat yrittäessäni ladata sovellusta.
- Ei assemblyä, joka sisältäisi OwinStartupAttributea.
- Ei assemblyä, joka sisältäisi käynnistyksen tai [AssemblyName]n. Startup-kurssi.
Jos haluat poistaa OWIN:n käynnistyslöydön käytöstä, lisää web.configiin appSetting owin:AutomaticAppStartup arvolla "false".
Määrittääksesi OWIN-käynnistyskokoonpanon, luokan tai metodin, lisää appSetting owin:AppStartup täysin pätevän käynnistysluokan tai konfiguraatiometodin nimellä web.config-tiedostoosi.



Ratkaisu:

Kun käytät Global.asax.cs-pohjaista alustusta, saatat joutua myös poistamaan käytöstä OWINin käynnistysluokan tunnistus.

Pääsemme asiaan, opetus alkaa:

1: Kehyksen tulisi vastata hangfire-tarpeita,Projektini on .net 4.6.2, Voit siis asentaa Hangfiren normaalisti, .net 4.0 -projektien ei tarvitse yrittää, ei tuettu!

2: Nuget-komento on seuraava:

3: OWIN Startup -luokka on suunniteltu pitämään web-sovellusten käynnistyslogiikka yhdessä paikassa. Visual Studio 2013:ssa voit lisätä sen klikkaamalla projektia hiiren oikealla ja valitsemalla Add/OWIN Startup Class -valikkokohdan. Kuten alla on esitetty:



Luo uusi Startup.cs-tiedosto projektin juurihakemistoon.

4: KokoonpanoTietokantayhteysmerkkijono, SQL Server 2012 -versio, jota käytän tässä, web.configin konfiguraatio on seuraava:

5: Määritä Hangfire-hallintapaneeli suodattimen käyttöön, luo uusiHangfireAuthorizationFilter.csTiedosto.

Oletuksena vain paikallinen pääsy Hangfire Dashboardiin on sallittu. Hallintapaneelin valtuutus on konfiguroitava mahdollistamaan etäkäyttö.


6: Määritä Startup.cs-luokka, koodi on seuraava:


7: Aloita verkkosivustoprojekti

Suorita sovellus F5 painamalla debug-tilaa (tämä vaatii Debug.WriteLine-metodin ulostulon tarkastelua). Tarkista sitten seuraava viesti Output-ikkunasta nähdäksesi, onko taustakäsittely alkanut onnistuneesti.



Samaan aikaan tietokannassa on myös 11 uutta taulua, jotka varmistavat, että kaikki tehtävät voidaan suorittaa normaalisti, eikä tehtäviä katoa IIS:n palautuksen tai prosessin uudelleenkäynnistyksen yhteydessä, kuten alla olevassa kuvassa näkyy:



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

Vieraile Dashboardin käyttöliittymän URL-osoitteessa nähdäksesi artikkelin yläreunassa olevan renderöinnin.

Liitetty käyttö

Tule ja unohda (julkaise/tilaa)

Tämä on pääasiallinen taustatehtävän tyyppi, jota pysyvä viestijono hoitaa. Kun luot julkaise/tilaa-tehtävän, tehtävä tallennetaan oletusjonoon (oletusjono on "Oletus", mutta useat jonot ovat tuettuja). Useat omistautuneet työntekijät kuuntelevat tätä jonoa, hakevat tehtäviä ja suorittavat tehtäviä.


Viivästys

Jos haluat viivästyttää tiettyjen tehtävien suorittamista, voit käyttää seuraavia tehtäviä. Tietyn viiveajan jälkeen tehtävä jonotetaan ja suoritetaan kuten julkaise/tilaa-tehtävä.

Lenkki

Jos haluat kutsua metodia periodisiteettien mukaan (tunnit, päivät jne.), käytä RecurringJob-luokkaa. Monimutkaisissa tilanteissa voit käyttää RON-lausekkeita määrittämään aikataulutetun ajan tehtävien käsittelylle.


Jatkuva

Jatkuvuus mahdollistaa monimutkaisten työnkulkujen määrittämisen yhdistämällä useita taustatehtäviä toisiinsa.


Virallinen dokumentaatiolinkki:Hyperlinkin kirjautuminen on näkyvissä.

(Loppu)






Edellinen:Videodata-algoritmi jakaa muistiinpanoja
Seuraava:Pyyntö peruutettu: SSL/TLS-turvallisen kanavaratkaisun luominen epäonnistui
Julkaistu 24.5.2019 10.12.25 |
Tätä julkaisua on viimeksi muokannut YuAn 24.5.2019 klo 10:20

Hyvä artikkeli opittu
Julkaistu 24.5.2019 10.12.46 |
Tukituki
Julkaistu 17.9.2021 21.59.44 |

Tukituki
Julkaistu 26.9.2022 22.20.45 |
Tukea, opi käyttämään sitä
Julkaistu 12.11.2022 19.02.23 |

Tukea, opi käyttämään sitä
Julkaistu 25.3.2023 9.45.31 |

Tukea, opi käyttämään sitä
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com