Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 61378|Atsakyti: 6

[ASP.NET] asp.net foninės užduoties "Hangfire" sistemos pamoka

[Kopijuoti nuorodą]
Paskelbta 2019-05-24 09:51:10 | | | |
"Hangfire" veikia su daugeliu .NET platformų:.NET Framework 4.5 arba naujesnė versija, .NET Core 1.0 ar naujesnė versija, viskas, kas susiję su . Suderinama su NET Standard 1.3 platforma. Galite integruoti jį su beveik bet kokia programų sistema, įskaitant "ASP.NET", "ASP.NET Core", konsolės programas, "Windows" paslaugas, WCF ir bendruomenės tvarkykles, tokias kaip "Nancy" ar "ServiceStack".

Taikomi scenarijai:Fonas siunčia el. laišką asinchroniškai ir kuo greičiau pateikia atsakymą vartotojui. Suplanuotas užduočių vykdymas, ciklinis užduočių vykdymas, asinchroninis daug laiko reikalaujančių užduočių vykdymas, A užduoties vykdymas ir B užduočių vykdymas bei paketinis užduočių vykdymas.
Kaip aš tai dariau:

c# inkapsuliuoja universalią QueueHelper eilę
https://www.itsvse.com/thread-5029-1-1.html
(Šaltinis: Architect_Programmer)


Galite įdėti foninį apdorojimą į ASP.NET programą nenaudodami kitų procesų, pvz., "Windows" paslaugų. "Hangfire" kodas paruoštas diegimuiNetikėtas proceso nutraukimas, programų telkinio perdirbimas ir paleidimas iš naujo。 Dėl naudojimoNuolatinis saugojimas, taigi jūsNeprarandama jokių foninių užduočių

Pirma, atvaizdai yra tokie:




Aukščiau esančiame paveikslėlyje yra "Hangfire Dashboard" prietaisų skydelis, kuris yra labai naudingas ir gali patikrinti foninių užduočių būseną, be to, jis yra labai šaunus, todėl jį reikia sukonfigūruoti.

Prietaisų skydelio vartotojo sąsaja reikalauja paleisties klasės, tik jeiKonfigūruojant "Hangfire" su "Startup" klase,Ataskaitų srities vartotojo sąsajaJis gali būti naudojamas

Iš pradžių nesukonfigūravau "Hangfire Dashboard" prietaisų skydelio ir gavau šią klaidą:

Bandant įkelti programą įvyko šios klaidos.
- Nerasta jokio rinkinio, kuriame būtų OwinStartupAttribute.
- Nerasta rinkinio, kuriame būtų paleidimas arba [AssemblyName]. Paleidimo klasė.
Norėdami išjungti OWIN paleisties aptikimą, pridėkite appSetting owin:AutomaticAppStartup su reikšme "false" savo web.config.
Norėdami nurodyti OWIN paleisties rinkinį, klasę arba metodą, pridėkite appSetting owin:AppStartup su visiškai kvalifikuota paleisties klase arba konfigūracijos metodo pavadinimu į savo web.config.



Sprendimas:

Naudojant Global.asax.cs pagrįstą inicijavimą, taip pat gali tekti išjungti OWIN paleisties klasės aptikimą.

Mes pradedame eiti į esmę, prasideda pamoka:

1: Sistema turėtų atitikti ugnies poreikius,Mano projektas yra .net 4.6.2, Taigi, galite įdiegti hangfire įprastai, .net 4.0 projektų nereikia bandyti, nepalaikoma!

2: Nuget komanda yra tokia:

3: OWIN Startup klasė sukurta taip, kad žiniatinklio programos įkrovos logika būtų vienoje vietoje. "Visual Studio 2013" galite jį pridėti dešiniuoju pelės mygtuku spustelėję projektą ir pasirinkę meniu punktą Pridėti / OWIN paleisties klasę. Kaip parodyta žemiau:



Sukurkite naują Startup.cs failą projekto šakniniame kataloge.

4: KonfigūracijaDuomenų bazės ryšio eilutė, SQL Server 2012 versija aš naudoju čia, konfigūracija web.config yra tokia:

5: Sukonfigūruokite "Hangfire" prietaisų skydelį, kad pasiektumėte filtrą, sukurkite naująHangfireAuthorizationFilter.csFailas.

Pagal numatytuosius nustatymus leidžiama tik vietinė prieiga prie "Hangfire" prietaisų skydelio. Ataskaitų srities autorizacija turi būti sukonfigūruota taip, kad būtų leidžiama nuotolinė prieiga.


6: Sukonfigūruokite Startup.cs klasę, kodas yra toks:


7: Pradėkite svetainės projektą

Paleiskite programą F5 paspausdami derinimo režimą (tam reikia pažvelgti į Debug.WriteLine metodo išvestį). Tada patikrinkite šį pranešimą lange Išvestis, kad sužinotumėte, ar foninis apdorojimas prasidėjo sėkmingai.



Tuo pačiu metu duomenų bazėje taip pat yra dar 11 lentelių, užtikrinančių, kad visas užduotis būtų galima vykdyti normaliai, o užduotys nebus prarastos IIS atkūrimo ar proceso paleidimo iš naujo, kaip parodyta paveikslėlyje žemiau:



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

Apsilankykite ataskaitų srities vartotojo sąsajos URL, kad pamatytumėte atvaizdavimą straipsnio viršuje.

Pridėtas naudojimas

Fire-And-forget (publikuoti / prenumeruoti)

Tai pagrindinis foninės užduoties tipas, kurį tvarko nuolatinė pranešimų eilė. Kai sukuriate publikavimo / prenumeravimo užduotį, užduotis bus įrašyta numatytojoje eilėje (numatytoji eilė yra "Numatytoji", bet palaikomos kelios eilės). Keli atsidavę darbuotojai klausosi šios eilės ir gauna iš jos užduotis bei atlieka užduotis.


Vėlavimas

Jei norite atidėti tam tikrų užduočių vykdymą, galite naudoti šias užduotis. Praėjus tam tikram delsos laikui, užduotis įtraukiama į eilę ir vykdoma kaip publikavimo / prenumeratos užduotis.

Kilpa

Norėdami iškviesti metodą pagal periodiškumą (valandas, dienas ir t. t.), naudokite klasę RecurringJob. Sudėtinguose scenarijuose galite naudoti CRON išraiškas, kad nurodytumėte suplanuotą užduočių apdorojimo laiką.


Nepertraukiamas

Tęstinumas leidžia apibrėžti sudėtingas darbo eigas susiejant kelias fonines užduotis.


Oficiali dokumentų nuoroda:Hipersaito prisijungimas matomas.

(Pabaiga)






Ankstesnis:Vaizdo duomenų algoritmas dalijasi pastabomis
Kitą:Užklausa nutraukta: nepavyko sukurti SSL/TLS saugaus kanalo sprendimo
Paskelbta 2019-05-24 10:12:25 |
Šį pranešimą paskutinį kartą redagavo YuAn 2019-5-24 10:20

Gražus straipsnis išmoko
Paskelbta 2019-05-24 10:12:46 |
Palaikymas Palaikymas
Paskelbta 2021-09-17 21:59:44 |

Palaikymas Palaikymas
Paskelbta 2022-09-26 22:20:45 |
Palaikymas, sužinokite, kaip juo naudotis
Paskelbta 2022-11-12 19:02:23 |

Palaikymas, sužinokite, kaip juo naudotis
Paskelbta 2023-03-25 09:45:31 |

Palaikymas, sužinokite, kaip juo naudotis
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com