See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 61378|Vastuse: 6

[ASP.NET] asp.net taustaülesande hangfire'i raamistiku õpetus

[Kopeeri link]
Postitatud 24.05.2019 09:51:10 | | | |
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:

c# kapseldab universaalset QueueHelperi järjekorda
https://www.itsvse.com/thread-5029-1-1.html
(Allikas: Architect_Programmer)


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)






Eelmine:Videoandmete algoritm jagab märkmeid
Järgmine:Taotlus katkestatud: SSL/TLS turvalise kanali lahenduse loomine ebaõnnestus
Postitatud 24.05.2019 10:12:25 |
Seda postitust toimetas viimati YuAn 2019-5-24 kell 10:20

Hea artikkel teada
Postitatud 24.05.2019 10:12:46 |
Toetuse tugi
Postitatud 17.09.2021 21:59:44 |

Toetuse tugi
Postitatud 26.09.2022 22:20:45 |
Tugi, õpi seda kasutama
Postitatud 12.11.2022 19:02:23 |

Tugi, õpi seda kasutama
Postitatud 25.03.2023 09:45:31 |

Tugi, õpi seda kasutama
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com