Programmēšana

Kā strādāt ar Hangfire C #

Darba plānošana tīmekļa lietojumprogrammās ir izaicinājums, un uzdevumam varat izvēlēties no daudzām ietvarstruktūrām. Populāra atvērtā koda bibliotēka Hangfire ir viena sistēma, kuru var izmantot fona darbu plānošanai .net.

Kāpēc man vajadzētu izmantot Hangfire?

Mūsdienās ir pieejamas daudzas darba plānošanas sistēmas. Kāpēc tad jums vajadzētu izmantot Hangfire, teiksim, Quartz.Net, kas ir vēl viens populārs ietvars, kas jau sen tiek izmantots? Nu, viens no galvenajiem Quartz.Net trūkumiem ir tas, ka tam ir nepieciešams Windows pakalpojums. Gluži pretēji, jums nav nepieciešams Windows pakalpojums, lai lietojumprogrammā izmantotu Hangfire. Spēja darboties bez Windows pakalpojuma padara Hangfire par labu izvēli pār Quartz.Net. Hangfire izmanto ASP.Net pieprasījumu apstrādes cauruļvadu priekšrocības darbu apstrādei un izpildei.

Ņemiet vērā, ka Hangfire neaprobežojas tikai ar tīmekļa lietojumprogrammām; to var izmantot arī savās konsoles lietojumprogrammās. Hangfire dokumentācija ir ļoti detalizēta un labi strukturēta, un labākā iezīme ir tās iebūvētais informācijas panelis. Hangfire informācijas panelī tiek parādīta detalizēta informācija par darbiem, rindām, darbu statusu un tā tālāk.

Darba sākšana

Lai Visual Studio izveidotu jaunu projektu, kas izmanto Hangfire, rīkojieties šādi:

  1. Atvērt Visual Studio 2015
  2. Noklikšķiniet uz Fails> Jauns> Projekts
  3. Parādīto projekta veidņu sarakstā atlasiet Visual C #> Web
  4. Tīmekļa projekta veidņu sarakstā atlasiet ASP.Net Web lietojumprogrammu
  5. Saglabājiet projektu ar nosaukumu

Nākamais solis ir Hangfire instalēšana un konfigurēšana jūsu lietojumprogrammā; process ir diezgan vienkāršs. Hangfire var instalēt, izmantojot Visual Studio NuGet pakešu pārvaldnieku. Varat arī izmantot pakotņu pārvaldnieka konsoli, lai instalētu Hangfire bibliotēku. Hangfire noklusējuma instalēšana plānošanas informācijas glabāšanai izmanto SQL Server. Turklāt, ja glabāšanai izmantojat Redis, varat instalēt Hangfire.Redis.

Ņemiet vērā, ka Hangfire saglabā jūsu darbus pastāvīgā krātuvē - pirms Hangfire izmantošanas jums ir jākonfigurē krātuve. Lai to izdarītu, izveidojiet datu bāzi un konfigurācijas faila savienojuma virknē norādiet datu bāzes akreditācijas datus. Jums nav jāizveido tabulas datu bāzē; Hangfire to automātiski izdarīs jūsu vietā. Kā un kad tas tiks darīts, redzēsim vēlāk.

Tagad, kad datu bāze ir izveidota un savienojuma virknes informācija ir norādīta lietojumprogrammas konfigurācijas failā, nākamais solis ir modificēt failu Startup.cs un nodrošināt nepieciešamo savienojuma virknes informāciju. Šis kodu saraksts parāda, kā Startup.cs fails izskatās pēc konfigurācijas detaļu norādīšanas.

izmantojot Hangfire;

izmantojot Microsoft.Owin;

izmantojot Owin;

izmantojot sistēmu;

[montāža: OwinStartupAttribute (typeof(HangFire.Startup)]]

nosaukumvieta HangFire

{

publiskā daļēja klase Startup

    {

public void Configuration (lietotne IAppBuilder)

        {

ConfigureAuth (lietotne);

GlobalConfiguration. Konfigurācija

.UseSqlServerStorage ("DefaultConnection");

BackgroundJob.Enqueue (() => Console.WriteLine ("Darba sākšana ar HangFire!"));

app.UseHangfireDashboard ();

app.UseHangfireServer ();

        }

    }

}

Viss ir sagatavots. Palaidot lietojumprogrammu un pievienojot URL ar “/ hangfire”, varat redzēt Hangfire informācijas paneli. Izpildot to pirmo reizi, datu bāzē tiek izveidota jauna tabula. Izveidotās tabulas ietver AggregatedCounter, Counter, Hash, Job, JobParameter, JobQueue, List, Schema, Server, Set un State. Uguns un aizmirst fona izveide Hangfire ir pavisam vienkārša. Varat izveidot fona darbu, izmantojot Enqueue () metode FonsDarbs klasē. Lūk, piemērs:

BackgroundJob.Enqueue (() => Console.WriteLine ("Tas ir uguns un aizmiršanas darbs, kas darbotos fonā."));

Aizkavēts fona darbs ir tāds, kas gaida (aizkavēšanās intervālu) un pēc tam izpilda līdzīgi kā parasts uguns un aizmirst fona darbs. Šis koda fragments parāda, kā varat izveidot aizkavētu fona darbu, izmantojot Grafiks () metode FonsDarbs klasē.

BackgroundJob.Schedule (() => Console.WriteLine ("Šis fona darbs tiktu izpildīts pēc kavēšanās."), TimeSpan.FromMilliseconds (1000));

Ja jūs izpildāt darbus, kas tiktu izpildīti pēc noteikta laika intervāla, Hangfire jums būs jāizveido atkārtotas darba vietas. Lai izveidotu atkārtotu darbu, jums vajadzētu izmantot AtkārtotsDarbs klasē. Ņemiet vērā, ka, plānojot darbus Hangfire, varat norādīt arī izteiksmes “cron”. Šis koda fragments parāda, kā jūs varat izveidot atkārtotu darbu, izmantojot Hangfire bibliotēku.

RecurringJob.AddOrUpdate (() => Console.WriteLine ("Šis darbs tiks izpildīts reizi minūtē"), Cron.Minūti);

Plašāku informāciju skatiet Hangfire Highlighter apmācībā.

$config[zx-auto] not found$config[zx-overlay] not found