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:
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)
|