Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 61378|Odpoveď: 6

[ASP.NET] asp.net pozadie tutoriál frameworku Hangfire

[Kopírovať odkaz]
Zverejnené 24. 5. 2019 9:51:10 | | | |
Hangfire funguje s väčšinou .NET platforiem:.NET Framework 4.5 alebo novší, .NET Core 1.0 alebo novší, čokoľvek súvisiace s . Platforma kompatibilná s NET Standard 1.3. Môžete ho integrovať takmer s akýmkoľvek aplikačným frameworkom, vrátane ASP.NET, ASP.NET Core, konzolových aplikácií, Windows služieb, WCF a komunitných ovládačov ako Nancy alebo ServiceStack.

Použiteľné scenáre:Pozadie odosiela e-mail asynchrónne a čo najskôr vráti odpoveď používateľovi. Plánované vykonávanie úloh, cyklické vykonávanie úloh, asynchrónne vykonávanie časovo náročných úloh, dokončenie vykonávania úlohy A a následné vykonávanie úloh B a dávkové vykonávanie úloh.
Ako som to robil ja:

c# zapuzdrí univerzálnu QueueHelper frontu
https://www.itsvse.com/thread-5029-1-1.html
(Zdroj: Architect_Programmer)


Do ASP.NET aplikácie môžete vložiť spracovanie na pozadí bez použitia iných procesov, ako sú Windows služby. Hangfireov kód je pripravený na nasadenieNeočakávané ukončenie procesu, recyklácia aplikačného poolu a reštart。 Kvôli používaniuPerzistentné úložisko, teda tyŽiadne pracovné miesta v pozadí sa nestrácajú

Po prvé, zobrazenia sú nasledovné:




Obrázok vyššie je dashboard Hangfire Dashboard, ktorý je veľmi užitočný a dokáže kontrolovať stav úloh na pozadí, a je tiež veľmi zaujímavý, takže ho treba nastaviť.

Dashboard UI vyžaduje startupovú triedu, len akPri konfigurácii Hangfire s triedou Startup,Dashboard UIDá sa použiť

Najprv som nekonfiguroval dashboard Hangfire Dashboard a dostal som nasledujúcu chybu:

Pri pokuse o spustenie aplikácie sa vyskytli nasledujúce chyby.
- Nenašla sa žiadna zostava obsahujúca atribút OwinStartup.
- Nebola nájdená žiadna zostava obsahujúca Startup alebo [AssemblyName]. Startupový kurz.
Ak chcete zakázať objavovanie OWIN pri spúšťaní, pridajte do web.config appSetting owin:AutomaticAppStartup s hodnotou "false".
Ak chcete určiť OWIN štartovaciu zostavu, triedu alebo metódu, pridajte appSetting owin:AppStartup s plne kvalifikovanou štartovacou triedou alebo názvom konfiguračnej metódy vo vašom web.config.



Riešenie:

Pri používaní inicializácie založenej na Global.asax.cs možno budete musieť vypnúť detekciu štartovacej triedy v OWIN.

Dostávame sa k veci, tutoriál začína:

1: Rámec by mal spĺňať potreby hangfire,Môj projekt je .net 4.6.2, Takže môžete nainštalovať hangfire normálne, .net 4.0 projekty sa nemusia snažiť, nie sú podporované!

2: Príkaz nuget je nasledovný:

3: Kurz OWIN Startup je navrhnutý tak, aby udržal logiku bootstrapovania webových aplikácií na jednom mieste. Vo Visual Studio 2013 ho môžete pridať kliknutím pravým tlačidlom na projekt a výberom položky menu Add/OWIN Startup Class. Ako je uvedené nižšie:



Vytvorte nový Startup.cs súbor v koreňovom adresári projektu.

4: KonfiguráciaReťazec spojenia databázy, verzia SQL Server 2012, ktorú tu používam, konfigurácia vo web.config je nasledovná:

5: Nakonfigurovať Hangfire Dashboard na prístup k filtru, vytvoriť novýHangfireAuthorizationFilter.csSúbor.

Predvolene je povolený iba lokálny prístup k Hangfire Dashboardu. Autorizácia dashboardu musí byť nakonfigurovaná tak, aby umožnila vzdialený prístup.


6: Nakonfigurujte triedu Startup.cs, kód je nasledovný:


7: Začnite projekt na webovej stránke

Spustite aplikáciu F5 stlačením debug mode (to vyžaduje pozretie výstupu metódy Debug.WriteLine). Potom skontrolujte nasledujúcu správu v okne Výstup, či sa spracovanie na pozadí úspešne spustilo.



Zároveň má databáza ďalších 11 tabuliek, aby sa zabezpečilo, že všetky úlohy môžu byť vykonávané normálne a úlohy nebudú stratené pri IIS reštarte alebo reštarte procesu, ako je znázornené na obrázku nižšie:



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

Navštívte URL používateľského rozhrania dashboardu, kde nájdete zobrazenie v hornej časti článku.

Priložené použitie

Oheň a zabudni (publikovať/predplatiť)

Toto je hlavný typ úlohy na pozadí, ktorý spracováva perzistentná fronta správ. Keď vytvoríte úlohu publikovať/predplatiť, úloha sa uloží do predvolenej fronty (predvolená fronta je "Default", ale podporuje sa viacero front). Viacerí špecializovaní pracovníci počúvajú túto frontu, načítavajú z nej úlohy a dokončujú úlohy.


Oneskorenie

Ak chcete oddialiť vykonávanie určitých úloh, môžete použiť nasledujúce úlohy. Po určitom oneskorení je úloha zaradená do fronty a vykonaná ako úloha publikovať/predplatiť.

Slučka

Na volanie metódy podľa periodicity (hodiny, dni atď.) použite triedu RecurringJob. V zložitých situáciách môžete použiť CRON výrazy na určenie plánovaného času na spracovanie úloh.


Kontinuálne

Kontinuita umožňuje definovať zložité pracovné postupy prepojením viacerých úloh na pozadí.


Oficiálny odkaz na dokumentáciu:Prihlásenie na hypertextový odkaz je viditeľné.

(Koniec)






Predchádzajúci:Algoritmus video dát zdieľa poznámky
Budúci:Požiadavka zrušená: Nepodarilo sa vytvoriť SSL/TLS bezpečné kanálové riešenie
Zverejnené 24. 5. 2019 10:12:25 |
Tento príspevok naposledy upravil YuAn 24.5.2019 o 10:20

Pekný článok som sa naučil
Zverejnené 24. 5. 2019 10:12:46 |
Podpora
Zverejnené 17. 9. 2021 21:59:44 |

Podpora
Zverejnené 26. 9. 2022 22:20:45 |
Podpora, nauč sa ju používať
Zverejnené 12. 11. 2022 19:02:23 |

Podpora, nauč sa ju používať
Zverejnené 25. 3. 2023 9:45:31 |

Podpora, nauč sa ju používať
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com