Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 61378|Odpověď: 6

[ASP.NET] asp.net pozadí tutoriál pro hangfire framework

[Kopírovat odkaz]
Zveřejněno 24.05.2019 9:51:10 | | | |
Hangfire funguje s většinou .NET platforem:.NET Framework 4.5 nebo novější, .NET Core 1.0 nebo novší, cokoli souvisejícího s . Platforma kompatibilní s NET Standard 1.3. Můžete ho integrovat téměř s jakýmkoli aplikačním frameworkem, včetně ASP.NET, ASP.NET Core, konzolových aplikací, Windows služeb, WCF a komunitních ovladačů jako Nancy nebo ServiceStack.

Vhodné scénáře:Pozadí odesílá e-mail asynchronně a co nejdříve odpoví uživateli. Plánované provádění úloh, cyklické provádění úloh, asynchronní provádění časově náročných úkolů, dokončení úkolu A a následné provádění úloh B a dávkové provádění úloh.
Jak jsem to dělal já:

c# zapouzdřuje univerzální frontu QueueHelper
https://www.itsvse.com/thread-5029-1-1.html
(Zdroj: Architect_Programmer)


Do ASP.NET aplikace můžete vložit zpracování na pozadí bez použití jiných procesů, jako jsou Windows služby. Kód Hangfire je připraven k nasazeníNeočekávané ukončení procesu, recyklace aplikačního poolu a restart。 Kvůli použitíPerzistentní úložiště, tedy tyŽádné vedlejší práce nejsou ztraceny

Nejprve jsou ztvárnění následující:




Obrázek výše je dashboard Hangfire Dashboard, který je velmi užitečný a může kontrolovat stav úkolů na pozadí, a navíc je velmi zajímavý, takže musí být nastavený.

Dashboard UI vyžaduje startovací třídu, jen pokudPři konfiguraci Hangfire s třídou Startup,Dashboard UILze ji použít

Nejprve jsem nekonfiguroval dashboard Hangfire Dashboard a dostal jsem následující chybu:

Při pokusu o spuštění aplikace se objevily následující chyby.
- Nebyla nalezena žádná sestava obsahující atribut OwinStartup.
- Nebyla nalezena žádná sestava obsahující Startup nebo [AssemblyName]. Kurz startupů.
Pro deaktivaci objevování OWIN při startu přidejte do web.config aplikaci appSetting owin:AutomaticAppStartup s hodnotou "false".
Pro určení OWIN startovacího Assembleru, Třídy nebo Metody přidejte appSetting owin:AppStartup s plně kvalifikovanou startovací třídou nebo názvem konfigurační metody ve vašem web.config.



Řešení:

Při použití inicializace založené na Global.asax.cs možná budete muset také vypnout detekci startovací třídy v OWIN.

Blížíme se k věci, tutoriál začíná:

1: Rámec by měl vyhovovat potřebám hangfire,Můj projekt je .net 4.6.2, Takže můžete nainstalovat hangfire normálně, projekty .net 4.0 nemusí zkoušet, nejsou podporovány!

2: Příkaz nuget je následující:

3: Kurz OWIN Startup je navržen tak, aby logika bootstrapování webových aplikací byla pohromadě na jednom místě. Ve Visual Studio 2013 ji můžete přidat kliknutím pravým tlačítkem na projekt a výběrem položky menu Add/OWIN Startup Class. Jak je uvedeno níže:



Vytvořte nový Startup.cs soubor v kořenovém adresáři projektu.

4: KonfiguraceŘetězec připojení k databázi, verze SQL Server 2012, kterou zde používám, má konfiguraci ve web.config následující:

5: Nakonfigurujte Hangfire Dashboard tak, aby měl přístup k filtru, vytvořte novýHangfireAuthorizationFilter.csSoubor.

Ve výchozím nastavení je povolen pouze lokální přístup k Hangfire Dashboardu. Autorizace dashboardu musí být nakonfigurována tak, aby umožňovala vzdálený přístup.


6: Nakonfigurujte třídu Startup.cs, kód je následující:


7: Začněte projekt na webových stránkách

Spusť aplikaci F5 stisknutím debug mode (to vyžaduje podívat se na výstup metody Debug.WriteLine). Poté zkontrolujte následující zprávu v okně Výstup, zda bylo zpracování na pozadí úspěšně zahájeno.



Současně má databáze také 11 dalších tabulek, aby bylo zajištěno, že všechny úkoly mohou být prováděny normálně a nebudou ztraceny při IIS obnově nebo restartu procesu, jak je znázorněno na obrázku níže:



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

Navštivte URL rozhraní dashboardu, kde najdete zobrazení v horní části článku.

Připojené použití

Fire-and-forget (publikovat/odebírat)

Toto je hlavní typ pozadí úkolu, který perzistentní fronta zpráv zpracovává. Když vytvoříte úlohu publikovat/odběr, úkol se uloží do výchozí fronty (výchozí fronta je "Default", ale podporuje více front). Více dedikovaných pracovníků poslouchá tuto frontu, načítá z ní úkoly a dokončuje úkoly.


Zpoždění

Pokud chcete oddálit provádění určitých úkolů, můžete použít následující úkoly. Po určité době zpoždění je úkol zařazen do fronty a vykonán jako úkol publikovat/odebírat.

Loop

Pro volání metody podle periodicity (hodiny, dny atd.) použijte třídu RecurringJob. V složitých situacích můžete použít CRON výrazy k určení plánovaného času pro zpracování úkolů.


Spojité

Kontinuita umožňuje definovat složité pracovní postupy propojením více úkolů na pozadí.


Oficiální odkaz na dokumentaci:Přihlášení k hypertextovému odkazu je viditelné.

(Konec)






Předchozí:Algoritmus video dat sdílí poznámky
Další:Žádost zrušena: Nepodařilo se vytvořit řešení bezpečného kanálu SSL/TLS
Zveřejněno 24.05.2019 10:12:25 |
Tento příspěvek byl naposledy upraven YuAn dne 24. 5. 2019 v 10:20

Pěkný článek jsem se naučil
Zveřejněno 24.05.2019 10:12:46 |
Podpora podpory
Zveřejněno 17.09.2021 21:59:44 |

Podpora podpory
Zveřejněno 26.09.2022 22:20:45 |
Podpora, nauč se ji používat
Zveřejněno 12.11.2022 19:02:23 |

Podpora, nauč se ji používat
Zveřejněno 25.03.2023 9:45:31 |

Podpora, nauč se ji používat
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com