Hur man schemalägger uppgifter med Ruby on Rails

Schemalägg uppgifter med Ruby on Rails

"Det kan inte bli någon kris nästa vecka. Mitt schema är redan fullt.” Detta fräcka citat av Henry Kissinger förklarar vikten av att ha ett schema. I livet eller i tekniken är schemaläggning viktigt. När det kommer till Ruby on Rails som föredrar konvention framför konfiguration är en schemaläggare ett måste. Schemaläggning av jobb kan definieras som "en beslutsprocess för att förplikta resurser mellan olika uppgifter". Det är i grunden en funktion som gör att man kan utföra rutinuppgifter som en del av en sekvens eller under fördefinierad tid som att utföra underhållsoperationer för att hämta RSS-flöden. Dessa schemalagda jobb som utförs i bakgrunden utförs av "arbetare". Så vilka är de bästa sätten att schemalägga en uppgift i Rails-miljö? Vanligtvis kan utvecklare använda applikationsspecifika cron-jobb för att köra uppgifterna, men cron-jobb är till för att schemalägga saker, inte faktiskt utföra dem. Det fungerar också bra på en enda server men om du vill skala till flera servrar så fungerar det inte så bra. De är också svåra att felsöka och är tidskrävande. Så, hur kan du säkerställa att din schemaläggning fungerar bra och utan något beroende eller för mycket syntax. "När som helst" kommer till din räddning! Kolla in hur "när som helst" pärla kan hjälpa dig att skapa cron-jobb med Ruby.

Vad är Whenever pärla?

Det används för att skriva och distribuera majsjobb med tydlig syntax.

Hur installerar man det?

gem 'whenever', :require => false
Efter installationen måste vi skriva "wheneverize ." i konsolen. Då skapas automatiskt filen schedule.rb i config-mappen. Inuti filen schedule.rb kan vi schemalägga funktionen baserat på tid, datum, månad, etc.. Ex:
var 1:e dag, :at => '10:00' gör rake "sow:events_reminder_mail", :environment => :development end
Innan du schemalägger åtgärden Inuti lib-mappen måste vi skapa en uppgiftsmapp, i aktivitetsmappen kan vi skapa rake-fil. Det är bara det rake-filnamnet som vi behöver använda för att schemalägga åtgärden
rake “sow:events_reminder_mail”, —–> rake filnamn med uppgift Namn :environment => :utveckling ——–> Vi måste specificera miljön
Inuti rake-filen kan vi ange villkoret och använda User Mailier för att skicka e-postmeddelandet. Den User Malier kommer att skicka e-postmeddelandet baserat på schemaläggning av tid, datum, månad, etc.. Ex:()
desc "Events inaktiva" uppgift :events_inactive => :environment do @events = Event.where(:end_date=>Date.today-1.days) @events.each do |event| event.update_attributes(:published_status=>false,:inactive_dat e=>Date.today) end end
Referens: https://github.com/javan/whenever

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish