Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 61378|Răspunde: 6

[ASP.NET] asp.net tutorial pentru framework-ul hangfire pentru sarcini de fundal

[Copiază linkul]
Postat pe 24.05.2019 09:51:10 | | | |
Hangfire funcționează cu majoritatea platformelor .NET:.NET Framework 4.5 sau mai târziu, .NET Core 1.0 sau versiune ulterioară, orice legat de . Platformă compatibilă NET Standard 1.3. Îl poți integra cu aproape orice framework de aplicații, inclusiv ASP.NET, ASP.NET Core, aplicații de consolă, servicii Windows, WCF și drivere comunitare precum Nancy sau ServiceStack.

Scenarii aplicabile:Fundalul trimite emailul asincron și returnează un răspuns utilizatorului cât mai curând posibil. Execuția programată a sarcinilor, execuția ciclică a sarcinilor, execuția asincronă a sarcinilor consumatoare de timp, finalizarea executării sarcinii A și apoi executarea sarcinilor B, precum și execuția în loturi a sarcinilor.
Cum obișnuiam să o fac:

c# încapsulează o coadă universală QueueHelper
https://www.itsvse.com/thread-5029-1-1.html
(Sursa: Architect_Programmer)


Poți introduce procesare în fundal în aplicație ASP.NET fără să folosești alte procese precum serviciile Windows. Codul Hangfire este gata de implementareTerminarea neașteptată a procesului, reciclarea pool-ului de aplicații și repornirea。 Din cauza utilizăriiStocare persistentă, de aceea tuNu se pierd niciun loc de muncă de fundal

În primul rând, randările sunt următoarele:




Imaginea de mai sus este dashboard-ul Hangfire Dashboard, care este foarte util și poate verifica starea sarcinilor în fundal, și este și foarte interesant, deci trebuie configurat.

Interfața dashboard-ului necesită o clasă de pornire, doar dacăCând configurezi Hangfire cu clasa Startup,UI DashboardPoate fi folosit

La început, nu am configurat dashboard-ul Hangfire Dashboard și am primit următoarea eroare:

Următoarele erori au apărut în încercarea de încărcare a aplicației.
- Nu s-a găsit nicio asamblare care să conțină un OwinStartupAttribut.
- Nu s-a găsit nicio asamblare care să conțină un Startup sau [AssemblyName]. Curs de pornire.
Pentru a dezactiva descoperirea de pornire OWIN, adaugă appSetting owin:AutomaticAppStartup cu valoarea "false" în web.config-ul tău.
Pentru a specifica Assembly-ul, Clasa sau Metoda de pornire OWIN, adăugați appSetting owin:AppStartup cu clasa de pornire complet calificată sau numele metodei de configurare în web.config.



Soluție:

Când folosești inițializarea bazată pe Global.asax.cs, este posibil să fie nevoie să dezactivezi și detectarea clasei de pornire a OWIN.

Ajungem la subiect, tutorialul începe:

1: Cadrul ar trebui să răspundă nevoilor hangfire,Proiectul meu este .net 4.6.2, Deci, poți instala Hangfire normal, proiectele .net 4.0 nu trebuie să încerce, nu sunt suportate!

2: Comanda nuget este următoarea:

3: Clasa OWIN Startup este concepută pentru a menține logica de pornire a aplicației web într-un singur loc. În Visual Studio 2013, îl poți adăuga făcând clic dreapta pe proiect și selectând elementul din meniul Add/OWIN Startup Class. Așa cum se arată mai jos:



Creează un nou fișier Startup.cs în directorul rădăcină al proiectului.

4: ConfigurațieȘirul de conexiune la baze de date, versiunea SQL Server 2012 pe care o folosesc aici, configurația din web.config este următoarea:

5: Configurează Dashboard-ul Hangfire pentru a accesa filtrul, creează unul nouHangfireAuthorizationFilter.csFișier.

În mod implicit, este permis doar accesul local la Dashboard-ul Hangfire. Autorizarea pentru tabloul de bord trebuie configurată pentru a permite accesul de la distanță.


6: Configurați clasa Startup.cs, codul este următorul:


7: Începerea unui proiect de site web

Rulați aplicația F5 apăsând modul debug (acest lucru necesită consultarea rezultatului metodei Debug.WriteLine). Apoi verifică următorul mesaj din fereastra de ieșire pentru a vedea dacă procesarea în fundal a început cu succes.



În același timp, baza de date are și alte 11 tabele pentru a se asigura că toate sarcinile pot fi executate normal, iar sarcinile nu se vor pierde în urma recuperării IIS sau la repornirea procesului, așa cum se arată în figura de mai jos:



http://<your-web-app>/foc suspendat

Vizitează URL-ul interfeței Dashboard pentru a vedea randarea din partea de sus a articolului.

Utilizare atașată

Fire-And-forget (publică/abonează-te)

Acesta este principalul tip de sarcină în fundal pe care o gestionează coada de mesaje persistente. Când creezi o sarcină de publicare/abonare, sarcina va fi salvată în coada implicită (coada implicită este "Default", dar sunt suportate cozi multiple). Mai mulți angajați dedicați ascultă această coadă, preiau sarcini din ea și finalizează sarcinile.


Întârziere

Dacă doriți să amânați executarea anumitor sarcini, puteți folosi următoarele sarcini. După un anumit timp de întârziere, sarcina este pusă în coadă și executată ca o sarcină de publicare/abonare.

Buclă

Pentru a chema metoda după periodicitate (ore, zile etc.), folosește clasa RecurringJob. În scenarii complexe, poți folosi expresii CRON pentru a specifica un timp programat pentru procesarea sarcinilor.


Continuu

Continuitatea îți permite să definești fluxuri de lucru complexe prin legarea mai multor sarcini în fundal.


Link pentru documentația oficială:Autentificarea cu hyperlink este vizibilă.

(Sfârșit)






Precedent:Algoritmul de date video împărtășește notițe
Următor:Cerere anulată: Nu s-a reușit crearea unei soluții de canal securizat SSL/TLS
Postat pe 24.05.2019 10:12:25 |
Această postare a fost editată ultima dată de YuAn la 24-05-2019, 22:20

Articol frumos învățat
Postat pe 24.05.2019 10:12:46 |
Suport
Postat pe 17.09.2021 21:59:44 |

Suport
Postat pe 26.09.2022 22:20:45 |
Suport, învață cum să îl folosești
Postat pe 12.11.2022 19:02:23 |

Suport, învață cum să îl folosești
Postat pe 25.03.2023 09:45:31 |

Suport, învață cum să îl folosești
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com