Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 61378|Odgovoriti: 6

[ASP.NET] asp.net ozadje za ozadje Hangfire Framework

[Kopiraj povezavo]
Objavljeno na 24. 05. 2019 09:51:10 | | | |
Hangfire deluje z večino .NET platform:.NET Framework 4.5 ali novejši, .NET Core 1.0 ali novejši, vse, kar je povezano z . Platforma združljiva z NET Standard 1.3. Lahko ga integrirate skoraj z vsakim aplikacijskim ogrodjem, vključno z ASP.NET, ASP.NET Core, konzolnimi aplikacijami, Windows storitvami, WCF in skupnostnimi gonilniki, kot sta Nancy ali ServiceStack.

Primerni scenariji:Ozadje pošlje e-pošto asinhrono in uporabniku čim prej vrne odgovor. Načrtovano izvajanje nalog, ciklično izvajanje nalog, asinhrono izvajanje časovno zahtevnih nalog, dokončanje izvajanja naloge A in nato izvajanje nalog B ter serijsko izvajanje nalog.
Kako sem to počel jaz:

c# kapsulira univerzalno vrsto QueueHelper
https://www.itsvse.com/thread-5029-1-1.html
(Vir: Architect_Programmer)


V ASP.NET aplikaciji lahko namestite ozadno obdelavo brez uporabe drugih procesov, kot so Windows storitve. Hangfireova koda je pripravljena za uporaboNepričakovano prekinitev procesa, recikliranje aplikacijskega bazena in ponovni zagon。 Zaradi uporabeTrajno shranjevanje, torej tiNobeno delo v ozadju ni izgubljeno

Najprej so upodobitve naslednje:




Zgornja slika prikazuje nadzorno ploščo Hangfire Dashboard, ki je zelo uporabna in lahko preverja stanje ozadnih nalog, poleg tega pa je zelo zanimiva, zato jo je treba konfigurirati.

Vmesnik nadzorne plošče zahteva tečaj za zagon, samo čePri konfiguraciji Hangfire z razredom Startup,Dashboard UILahko se uporablja

Sprva nisem konfiguriral nadzorne plošče Hangfire Dashboard in sem dobil naslednjo napako:

Naslednje napake so se pojavile med poskusom nalaganja aplikacije.
- Ni najdene nobene skupščine, ki bi vsebovala atribut OwinStartup.
- Ni najdene nobene skupščine, ki bi vsebovala zagon ali [AssemblyName]. Tečaj za zagon.
Za onemogočanje odkrivanja zagona OWIN dodajte appSetting owin:AutomaticAppStartup z vrednostjo "false" v web.config.
Za določitev OWIN zagonskega Assembly, Class ali Method dodajte appSetting owin:AppStartup z imenom popolnoma kvalificiranega zagonskega razreda ali konfiguracijske metode v vašem web.config.



Rešitev:

Pri uporabi inicializacije na osnovi Global.asax.cs boste morda morali onemogočiti tudi zaznavanje zagonskih razredov v OWIN-u.

Začnemo k bistvu, uvodni vodič se začne:

1: Okvir naj ustreza potrebam hangfire,Moj projekt je .net 4.6.2, Torej lahko normalno namestite hangfire, .net 4.0 projekti jih ni treba poskušati, niso podprti!

2: Nuget ukaz je naslednji:

3: Tečaj OWIN Startup je zasnovan tako, da ohranja logiko zagona spletnih aplikacij na enem mestu. V Visual Studio 2013 ga lahko dodate z desnim klikom na projekt in izbiro menija Add/OWIN Startup Class. Kot je prikazano spodaj:



Ustvarite novo Startup.cs datoteko v korenski mapi projekta.

4: KonfiguracijaPovezovalni niz podatkovne baze, različica SQL Server 2012, ki jo uporabljam tukaj, konfiguracija v web.config je naslednja:

5: Konfigurirajte Hangfire nadzorno ploščo za dostop do filtra, ustvarite novoHangfireAuthorizationFilter.csDatoteka.

Privzeto je dovoljen le lokalni dostop do Hangfire nadzorne plošče. Avtorizacija nadzorne plošče mora biti konfigurirana tako, da omogoča oddaljen dostop.


6: Konfigurirajte razred Startup.cs, koda je naslednja:


7: Začni spletni projekt

Aplikacijo F5 zaženite s pritiskom na način debug (to zahteva pregled izhoda metode Debug.WriteLine). Nato preverite naslednje sporočilo v oknu Izhod, da preverite, ali se je ozadna obdelava uspešno začela.



Hkrati ima baza podatkov še 11 dodatnih tabel, ki zagotavljajo, da se vse naloge lahko izvajajo normalno in da naloge ne bodo izgubljene med IIS rekultivacijo ali ponovnim zagonom procesov, kot je prikazano na spodnji sliki:



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

Obiščite URL uporabniškega vmesnika nadzorne plošče, da si ogledate upodobitev na vrhu članka.

Priložena uporaba

Ogenj in pozabi (objavi/naročina)

To je glavna vrsta ozadne naloge, ki jo obravnava trajna vrsta sporočil. Ko ustvarite nalogo objave/naročnine, se naloga shrani v privzeto vrsto (privzeta vrsta je "Privzeta", vendar je podprtih več vrst). Več predanih delavcev posluša to čakalno vrsto, iz nje pridobiva naloge in opravlja naloge.


Zamuda

Če želite odložiti izvajanje določenih nalog, lahko uporabite naslednje naloge. Po določenem času zamude se naloga postavi v vrsto in izvede kot naloga za objavo/naročanje.

Loop

Za klicanje metode po periodičnosti (ure, dnevi itd.) uporabite razred RecurringJob. V zapletenih primerih lahko uporabite CRON izraze za določitev načrtovanega časa za obdelavo nalog.


Neprekinjeno

Kontinuiteta vam omogoča definiranje zapletenih delovnih tokov z združevanjem več ozadnih opravil.


Povezava do uradne dokumentacije:Prijava do hiperpovezave je vidna.

(Konec)






Prejšnji:Algoritem za video podatke deli opombe
Naslednji:Zahteva prekinjena: Ni uspelo ustvariti rešitve za varni kanal SSL/TLS
Objavljeno na 24. 05. 2019 10:12:25 |
To objavo je nazadnje uredil YuAn 24. 5. 2019 ob 10:20

Dober članek, ki sem se naučil
Objavljeno na 24. 05. 2019 10:12:46 |
Podpora
Objavljeno na 17. 09. 2021 21:59:44 |

Podpora
Objavljeno na 26. 09. 2022 22:20:45 |
Podpora, nauči se jo uporabljati
Objavljeno na 12. 11. 2022 19:02:23 |

Podpora, nauči se jo uporabljati
Objavljeno na 25. 03. 2023 09:45:31 |

Podpora, nauči se jo uporabljati
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com