Hangfire darbojas ar lielāko daļu .NET platformu:.NET Framework 4.5 vai jaunāka versija, .NET Core 1.0 vai jaunāka versija, jebkas, kas saistīts ar . Ar NET Standard 1.3 saderīga platforma. To var integrēt ar gandrīz jebkuru lietojumprogrammu ietvaru, tostarp ASP.NET, ASP.NET Core, konsoles lietojumprogrammām, Windows pakalpojumiem, WCF un kopienas draiveriem, piemēram, Nancy vai ServiceStack.
Piemērojamie scenāriji:Fons nosūta e-pasta ziņojumu asinhroni un pēc iespējas ātrāk atgriež atbildi lietotājam. Plānota uzdevumu izpilde, cikliska uzdevumu izpilde, laikietilpīgu uzdevumu asinhrona izpilde, A uzdevuma izpilde un pēc tam B uzdevumu izpilde, kā arī uzdevumu sērijveida izpilde. Kā es to darīju:
Fona apstrādi var ievietot ASP.NET lietojumprogrammā, neizmantojot citus procesus, piemēram, Windows pakalpojumus. Hangfire kods ir gatavs izvietošanaiNeparedzēta procesa pārtraukšana, lietojumprogrammu pūla pārstrāde un restartēšana。 Sakarā ar lietošanuPastāvīga uzglabāšana, līdz ar to jūsNeviens fona darbs netiek zaudēts。
Pirmkārt, atveidojumi ir šādi:
Iepriekš redzamais attēls ir Hangfire Dashboard informācijas panelis, kas ir ļoti noderīgs un var pārbaudīt fona uzdevumu statusu, un tas ir arī ļoti foršs, tāpēc tas ir jākonfigurē.
Informācijas paneļa lietotāja interfeisam ir nepieciešama startēšanas klase tikai tad, jaKonfigurējot Hangfire ar startēšanas klasi,Informācijas paneļa lietotāja interfeissTo var izmantot。
Sākumā es nekonfigurēju Hangfire informācijas paneļa informācijas paneli un saņēmu šādu kļūdu:
Mēģinot ielādēt programmu, radās šādas kļūdas. - Nav atrasta montāža, kas satur OwinStartupAttribute. - Nav atrasta montāža, kas satur startēšanu vai [AssemblyName]. Starta klase. Lai atspējotu OWIN startēšanas atklāšanu, pievienojiet appSetting owin:AutomaticAppStartup ar vērtību "false" savā web.config. Lai norādītu OWIN startēšanas montāžu, klasi vai metodi, pievienojiet appSetting owin:AppStartup ar pilnībā kvalificētu startēšanas klases vai konfigurācijas metodes nosaukumu savā web.config.
Šķīdums:
Izmantojot Global.asax.cs inicializāciju, iespējams, būs jāatspējo arī OWIN startēšanas klases noteikšana.
Mēs sākam nonākt pie punkta, apmācība sākas:
1: Sistēmai jāatbilst ugunsgrēka vajadzībām,Mans projekts ir .net 4.6.2, Tātad, jūs varat instalēt hangfire normāli, .net 4.0 projektiem nav jāmēģina, netiek atbalstīts!
2: Nuget komanda ir šāda:
3: OWIN Startup klase ir paredzēta, lai tīmekļa lietojumprogrammu sāknēšanas loģika būtu vienuviet. Programmā Visual Studio 2013 to var pievienot, ar peles labo pogu noklikšķinot uz projekta un izvēloties izvēlnes elementu Pievienot / OWIN startēšanas klasi. Kā parādīts zemāk:
Izveidojiet jaunu Startup.cs failu projekta saknes direktorijā.
4: KonfigurācijaDatu bāzes savienojuma virkne, SQL Server 2012 versiju, ko es izmantoju šeit, konfigurācija web.config ir šāda:
5: Konfigurējiet Hangfire informācijas paneli, lai piekļūtu filtram, izveidojiet jaunuHangfireAuthorizationFilter.csFails.
Pēc noklusējuma ir atļauta tikai vietējā piekļuve Hangfire informācijas panelim. Informācijas paneļa autorizācija ir jākonfigurē, lai atļautu attālo piekļuvi.
6: Konfigurējiet Startup.cs klasi, kods ir šāds:
7: Sāciet tīmekļa vietnes projektu
Palaidiet lietojumprogrammu F5, nospiežot atkļūdošanas režīmu (tas prasa aplūkot Debug.WriteLine metodes izvadi). Pēc tam pārbaudiet šo ziņojumu izvades logā, lai redzētu, vai fona apstrāde ir veiksmīgi sākusies.
Tajā pašā laikā datu bāzē ir arī vēl 11 tabulas, lai nodrošinātu, ka visus uzdevumus var izpildīt normāli, un uzdevumi netiks zaudēti IIS atgūšanas vai procesa restartēšanas laikā, kā parādīts zemāk redzamajā attēlā:
http:// <your-web-app>/ ugunsgrēks Apmeklējiet informācijas paneļa lietotāja interfeisa URL, lai skatītu atveidojumu raksta augšdaļā.
Pievienotais lietojums
Ugunsgrēks un aizmirstība (publicēt/abonēt)
Šis ir galvenais fona uzdevuma tips, ko apstrādā pastāvīgā ziņojumu rinda. Izveidojot publicēšanas/abonēšanas uzdevumu, uzdevums tiks saglabāts noklusējuma rindā (noklusējuma rinda ir "Noklusējums", bet tiek atbalstītas vairākas rindas). Vairāki speciāli darbinieki klausās šo rindu un iegūst no tās uzdevumus un izpilda uzdevumus.
Kavēšanās
Ja vēlaties aizkavēt noteiktu uzdevumu izpildi, varat izmantot šādus uzdevumus. Pēc noteikta aizkaves laika uzdevums tiek ievietots rindā un izpildīts kā publicēšanas/abonēšanas uzdevums.
Cilpa
Lai izsauktu metodi pēc periodiskuma (stundas, dienas utt.), izmantojiet klasi RecurringJob. Sarežģītos scenārijos CRON izteiksmes var izmantot, lai norādītu ieplānoto uzdevumu apstrādes laiku.
Nepārtraukts
Nepārtrauktība ļauj definēt sarežģītas darbplūsmas, sasaistot vairākus fona uzdevumus.
Oficiālās dokumentācijas saite:Hipersaites pieteikšanās ir redzama.
(Beigas)
|