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 => falseEfter 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 endInnan 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önInuti 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 endReferens: https://github.com/javan/whenever
Prenumerera för de senaste uppdateringarna
relaterade inlägg