A Hangfire a legtöbb .NET platformon működik:.NET Framework 4.5 vagy újabb, .NET Core 1.0 vagy újabb, bármi, ami kapcsolódik . NET Standard 1.3 kompatibilis platform. Szinte bármilyen alkalmazáskeretrendszerrel integrálhatod, beleértve az ASP.NET-t, ASP.NET Core-t, konzolalkalmazásokat, Windows szolgáltatásokat, WCF-et és közösségi drivereket, mint a Nancy vagy a ServiceStack.
Alkalmazható forgatókönyvek:A háttér aszinkron módon küldi az e-mailt, és a lehető leghamarabb visszaadja a választ a felhasználónak. Ütemezett feladatok végrehajtása, ciklikus végrehajtás, időigényes feladatok aszinkron végrehajtása, az A feladat végrehajtása, majd a B feladatok végrehajtása, valamint a feladatok köteges végrehajtása. Hogyan csináltam régen:
A háttérfeldolgozást ASP.NET alkalmazásba lehet beépíteni anélkül, hogy más folyamatokat, például Windows szolgáltatásokat használnánk. Hangfire kódja készen áll a bevezetésreVáratlan folyamatfelzárás, alkalmazáskészlet újrahasznosítás és újraindítás。 A használat miattÁllandó tárolás, ezért teSemmilyen háttérállás nem veszik el。
Először is, a képek a következők:
A fenti kép a Hangfire Dashboard irányítópultja látható, ami nagyon hasznos, és képes ellenőrizni a háttérfeladatok állapotát, ráadásul nagyon menő, ezért be kell állítani.
A dashboard UI-hoz startup osztály szükséges, csak akkor, haAmikor a Hangfire-t az Startup osztállyal konfiguráljuk,Dashboard UIHasználható。
Eleinte nem konfiguráltam a Hangfire Dashboard irányítópultját, és a következő hibát kaptam:
A következő hibák az alkalmazás betöltése közben jelentkeztek. - Nem találtak assembly egy OwinStartupAttribute-t. - Nem találtak assemblert, amely tartalmazna Startupot vagy [AssemblyName]-et. Startup tanfolyam. Az OWIN indítási felfedezésének letiltásához add hozzá az appSetting owin:AutomaticAppStartup mappát "false" értékkel a web.config-ban. Az OWIN indítási Assembly, Class vagy Method megadásához add hozzá az appSetting owin:AppStartup címet a teljes minősített startup osztály vagy konfigurációs módszer nevével a web.config-ban.
Megoldás:
Global.asax.cs-alapú inicializáció esetén előfordulhat, hogy az OWIN indítási osztályfelismerését is le kell tiltani.
Kezdjük eljutni a lényegre, kezdődik a tutorial:
1: A keretrendszernek meg kell felelnie a hangfire igényeinek,A projektem .net 4.6.2, Tehát a hangfire-ot normálisan telepítheted, a .net 4.0 projekteket nem kell próbálni, nem támogatva!
2: A nuget parancs a következő:
3: Az OWIN Startup osztály úgy lett tervezve, hogy a webalkalmazás bootstrapping logikáját egy helyen tartsa. A Visual Studio 2013-ban hozzáadhatod a projekt jobb oldali kattintásával, majd az Add/OWIN Startup Class menüpont kiválasztásával. Ahogy az alábbiakban látható:
Hozz létre egy új Startup.cs fájlt a projekt gyökérkönyvtárában.
4: Konfigurációadatbázis-kapcsolati string, az SQL Server 2012 verzió, amit itt használok, a web.config konfigurációja a következő:
5: Konfiguráld a Hangfire Dashboard-t, hogy hozzáférjen a szűrőhöz, hozz létre egy újatHangfireAuthorizationFilter.csFájl.
Alapértelmezés szerint csak a Hangfire Dashboard helyi hozzáférése engedélyezett. A vezérlőpult engedélyezését úgy kell konfigurálni, hogy lehetővé tegye a távoli hozzáférést.
6: Konfiguráljuk a Startup.cs osztályt, a kód a következő:
7: Indítson weboldal projektet
Futtasd az F5 alkalmazást a debug mód megnyomásával (ehhez a Debug.WriteLine metódus kimenetét kell megnézni). Ezután nézd meg a következő üzenetet a Kimenet ablakban, hogy megnézd, sikeresen elindult-e a háttérfeldolgozás.
Ugyanakkor az adatbázisban további 11 tábla is található, hogy minden feladat normálisan lehessen végrehajtani, és a feladatok ne veszjenek el IIS helyreállítás vagy folyamat újraindítása esetén, ahogy az alábbi ábrán látható:
http://<your-web-app>/hangfire Látogasd meg a Dashboard UI URL-jét, hogy lásd a cikk tetején lévő renderelést.
Csatolt használat
Tűz és felejtsd el (publikál/feliratkozz)
Ez a fő háttérfeladat, amelyet a tartós üzenetsorban kezel. Amikor létrehozol egy publish/subscribe feladatot, a feladat elmentődik az alapértelmezett sorba (az alapértelmezett sor "Default", de több sor is támogatott). Több elkötelezett dolgozó hallgatja ezt a sort, betölti onnan a feladatokat, és befejezi a feladatokat.
Késés
Ha bizonyos feladatok végrehajtását késleltetni szeretnéd, a következő feladatokat használhatod. Egy adott késleltetés után a feladatot sorba állítják és végrehajtják, mint egy publish/subscribe feladat.
Kör
A módszert periodiitás szerint (órák, napok stb.) nevezni a RecurringJob osztályt használjuk. Komplex helyzetekben CRON kifejezéseket használhatsz a feladatok feldolgozásához ütemezett időpont megadásához.
Folyamatos
A folytonosság lehetővé teszi, hogy összetett munkafolyamatokat definiálj több háttérfeladat összekapcsolásával.
Hivatalos dokumentációs link:A hiperlink bejelentkezés látható.
(Vége)
|