Programmēšana

Kā strādāt ar Quartz.Net C #

Strādājot ar lietojumprogrammām, jums bieži būs jāveic daži uzdevumi fonā iepriekš noteiktos laika intervālos. Darbu plānošana lietojumprogrammās ir izaicinājums, un jūs varat izvēlēties kādu no daudzajiem pieejamajiem ietvariem, piemēram, Quartz, Hangfire utt.

Quartz.Net ir izmantots ilgu laiku un nodrošina labāku atbalstu darbam ar Cron izteiksmēm. Hangfire ir vēl viena darba plānotāja sistēma, kas izmanto ASP.Net pieprasījumu apstrādes cauruļvadu priekšrocības darbu apstrādei un izpildei.

Quartz.Net ir populārā Java darba plānošanas ietvara .Net ports. Tā ir atvērtā pirmkoda darba plānošanas sistēma, kuru var izmantot no mazākajām lietotnēm līdz liela mēroga uzņēmumu sistēmām. Quartz.Net oficiālajā vietnē ir teikts: "Quartz.Net ir pilnībā aprīkota, atvērtā koda darbu plānošanas sistēma, kuru var izmantot no mazākajām lietotnēm līdz liela mēroga uzņēmumu sistēmām."

Darba sākšana

Jūs varat instalēt Quartz.Net no oficiālās vietnes Quartz lejupielāžu sadaļas. Varat arī instalēt Quartz.Net, izmantojot Visual Studio IDE pakešu pārvaldnieka logu.

Trīs galvenie kvarca komponenti ir darbavietas, aktivizētāji un plānotāji, t.i., lai izveidotu un ieplānotu darbavietas kvarcā. Net, jums vajadzētu būt plānotājiem, aktivizētājiem un darbiem. Kamēr darbs apzīmē izpildāmo uzdevumu, tiek izmantots sprūda, lai norādītu, kā darbs tiks izpildīts. Plānotājs ir komponents, kas ieplāno darbus. Ņemiet vērā, ka jums jāreģistrē darbavietas un aktivizētāji plānotājā.

Programmas Quartz.Net programmēšana C #

Lai izveidotu darbu, jums jāizveido klase, kas ievieš IJob saskarni. Starp citu, šī saskarne deklarē Execute metodi - šī metode jāievieš pielāgotajā darba klasē. Šis koda fragments parāda, kā jūs varat ieviest IJob saskarni, lai izveidotu pielāgotu darba klasi, izmantojot bibliotēku Quartz.Net.

sabiedrības klase Darbs: IJobs

   {

public void Izpildīt (konteksts IJobExecutionContext)

       {

// koda paraugs, kas apzīmē veicamo darbu

       }

   }

Darba klases Execute metodes vienkārša ieviešana - es atstāju jums iespēju izveidot savu pielāgoto darba klasi atbilstoši jūsu lietojumprogrammas vajadzībām. Zemāk sniegtais koda fragments pašreizējo DateTime vērtību raksta kā tekstu failā. Ņemiet vērā, ka šī ieviešana nav droša ar pavedieniem; tas ir tikai ilustratīviem nolūkiem.

public void Izpildīt (konteksts IJobExecutionContext)

        {

izmantojot (StreamWriter streamWriter = new StreamWriter (@ "D: \ Log.txt", patiess))

            {

streamWriter.WriteLine (DateTime.Now.ToString ());

            }

        }

Tagad, kad esat jau definējis darba klasi, jums būs jāizveido sava darba plānotāja klase un jādefinē sava darba trigeris. Sprūda satur cron izteiksmi darba metadatus. Jūs varat apmeklēt šo saiti, lai ģenerētu cron izteicienus.

Kā tagad tiek plānoti darbi? Nu, ir komponents, ko sauc par darba plānotāju, kas ir atbildīgs par jūsu darbu plānošanu. Būtībā jūs varat izmantot darba plānotāju priekšrocības, lai ieplānotu savu darbu izpildi. Šis kodu saraksts parāda, kā mēs varam definēt aktivizētāju savam darbam un pēc tam reģistrēt darbu un sprūdu ar darba plānotāju.

sabiedrības klase JobSederer

   {

public static void Sākt ()

       {

IScheduler plānotājs = StdSchedulerFactory.GetDefaultScheduler ();

plānotājs.Sākt ();

IJobDetail job = JobBuilder.Create (). Build ();

ITrigger trigeris = TriggerBuilder.Create ()

.WithIdentity ("Darbs", "")

.WithCronSchedule ("0 0/1 * 1/1 *? *")

.StartAt (DateTime.UtcNow)

.WithPriority (1)

.Būvēt();

plānotājs.ScheduleJob (darbs, sprūda);

       }

   }

Skatiet iepriekš sniegto kodu sarakstu. Ievērojiet, kā, veidojot sprūda gadījumu, tika norādīts trigera nosaukums un grupa. Kad darba trigeris ir definēts un konfigurēts, izmantojot nepieciešamo cron izteiksmi, sprūda tiek reģistrēta darba plānotājā.

Jūs varat arī izveidot sprūdu, kas tiek palaists katru sekundi un atkārtojas bezgalīgi. Šeit ir koda fragments, kas ilustrē, kā jūs varat izveidot šādu aktivizētāju.

ITrigger trigeris = TriggerBuilder.Create ()

.WithIdentity ("Darbs", "")

.Sākt tagad()

.WithSimpleSchedule (s => s

.ArIntervalInSeconds (10)

.RepeatForever ())

.Būvēt();

Lai palaistu plānotāju, jums ne vienmēr ir nepieciešams Windows pakalpojums. Ja izmantojat ASP.Net tīmekļa lietojumprogrammu, varat izmantot Global.asax faila notikuma Application_Start priekšrocības un pēc tam piezvanīt uz metodi JobScheduler.Start (), kā parādīts zemāk esošajā koda fragmentā.

publiskā klase Globālā: HttpApplication

   {

void Application_Start (objekta sūtītājs, EventArgs e)

       {

// Kods, kas darbojas programmas startēšanas laikā

JobScheduler.Start ();

       }

   }

Ņemiet vērā, ka JobScheduler ir pielāgotās klases nosaukums, kuru mēs izstrādājām iepriekš. Ņemiet vērā, ka jūs varat arī izmantot Quartz.Net, lai savus darbus saglabātu pastāvīgās krātuvēs, t.i., jūs varat saglabāt savus darbus arī datu bāzē. Šeit varat uzzināt visu atbalstīto darba veikalu sarakstu.

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