Hangfire töötab enamiku .NET platvormidega:.NET Framework 4.5 või uuem, .NET Core 1.0 või uuem, kõik, mis on seotud . NET Standard 1.3 ühilduv platvorm. Seda saab integreerida peaaegu iga rakendusraamistikuga, sealhulgas ASP.NET, ASP.NET Core, konsoolirakendused, Windowsi teenused, WCF ja kogukonna draiverid nagu Nancy või ServiceStack.
Rakendatavad stsenaariumid:Taust saadab e-kirja asünkroonselt ja vastab kasutajale nii kiiresti kui võimalik. Ülesannete ajastatud täitmine, tsükliline ülesannete täitmine, aeganõudvate ülesannete asünkroonne täitmine, ülesande A täitmine ja seejärel B ülesannete täitmine ning ülesannete partiitäitmine. Kuidas ma seda varem tegin:
Saad panna taustatöötluse ASP.NET rakendusse ilma teiste protsessideta, nagu Windowsi teenused, kasutamata. Hangfire'i kood on kasutuselevõtuks valmisOotamatu protsessi lõpetamine, rakenduste basseini taaskasutus ja taaskäivitamine。 Kasutuse tõttuPüsiv salvestus, seega sinaTaustatöökohti ei kao。
Esiteks on renderdused järgmised:
Ülaloleval pildil on Hangfire Dashboard juhtpaneel, mis on väga kasulik ja võimaldab kontrollida taustaülesannete olekut, ning see on ka väga lahe, seega tuleb see seadistada.
Armatuurlaua kasutajaliides nõuab käivitamiskursust ainult siis, kuiKui seadistad Hangfire'i Startup-klassiga,Dashboard UISeda saab kasutada。
Alguses ma ei seadistanud Hangfire Dashboardi juhtpaneeli ja sain järgmise vea:
Järgmised vead tekkisid rakenduse laadimise katsel. - Ühtegi kokkupanekut ei leitud, mis sisaldaks OwinStartupAttribute'i. - Ühtegi assemblerit ei leitud, mis sisaldaks käivitamist või [AssemblyName]. Start-kursus. OWIN käivitamise avastamise keelamiseks lisa web.config faili appSetting owin:AutomaticAppStartup väärtusega "false". OWIN käivituskomplekti, klassi või meetodi määramiseks lisa appSetting owin:AppStartup koos täielikult kvalifitseeritud käivitusklassi või konfiguratsioonimeetodi nimega oma web.config-is.
Lahus:
Global.asax.cs-põhise initsialiseerimise kasutamisel võib olla vaja keelata ka OWINi käivitusklassi tuvastus.
Hakkame asja tuumani jõudma, õpetus algab:
1: Raamistik peaks vastama hangfire'i vajadustele,Minu projekt on .net 4.6.2, Nii et hangfire'i saab tavaliselt paigaldada, .NET 4.0 projektid ei pea proovima, see pole toetatud!
2: Nuget käsk on järgmine:
3: OWIN Startup klass on loodud selleks, et hoida veebirakenduse alglaadimisloogika ühes kohas. Visual Studio 2013-s saad selle lisada, klõpsates projektil paremklõpsuga ja valides menüü Add/OWIN Startup Class. Nagu allpool näidatud:
Loo projekti juurkataloogis uus Startup.cs fail.
4: KonfiguratsioonAndmebaasi ühenduse string, SQL Server 2012 versiooni, mida siin kasutan, web.config konfiguratsioon on järgmine:
5: Seadista Hangfire'i juhtpaneel, et filtrile ligi pääseda, loo uusHangfireAuthorizationFilter.csFail.
Vaikimisi on lubatud ainult kohalik ligipääs Hangfire'i juhtpaneelile. Armatuurlaua autoriseerimist tuleb seadistada nii, et see võimaldaks kaugjuurdepääsu võimaldada.
6: Seadista Startup.cs klass, kood on järgmine:
7: Alusta veebilehe projekti
Käivita rakendus F5, vajutades silumisrežiimi (see nõuab Debug.WriteLine meetodi väljundi vaatamist). Seejärel kontrolli järgmist teadet väljundaknas, et näha, kas taustatöötlus on edukalt alanud.
Samal ajal on andmebaasis veel 11 tabelit, et tagada kõigi ülesannete normaalne täitmine ning ülesanded ei kaoks IIS-i taastamise või protsessi taaskäivitamise korral, nagu alloleval joonisel näidatud:
http://<your-web-app>/hangfire Külasta Dashboard UI URL-i, et näha artikli ülaosas olevat renderdust.
Lisatud kasutus
Tule ja unusta (avalda/telli)
See on peamine taustatöö tüüp, mida püsiv sõnumijärjekord haldab. Kui loote avaldamise/tellimise ülesande, salvestatakse ülesanne vaikimisi järjekorda (vaikimisi järjekord on "Vaikimisi", kuid toetatakse mitut järjekorda). Mitmed pühendunud töötajad kuulavad seda järjekorda, võtavad sealt ülesandeid ja täidavad ülesandeid.
Viivitus
Kui soovite teatud ülesannete täitmist edasi lükata, saate kasutada järgmisi ülesandeid. Pärast kindlat viivitust pannakse ülesanne järjekorda ja täidetakse nagu avalda/telli ülesannet.
Ring
Meetodi nimetamiseks perioodilisuse järgi (tunnid, päevad jne) kasuta RecurringJob klassi. Keerulistes olukordades saad kasutada RON-avaldisi, et määrata ajastatud aeg ülesannete töötlemiseks.
Pidev
Järjepidevus võimaldab määratleda keerukaid töövooge, sidudes mitu taustaülesannet omavahel.
Ametlik dokumentatsiooni link:Hüperlingi sisselogimine on nähtav.
(Lõpp)
|