Elegant och roligt? Dessa fraser är inte något du skulle associera med ett programmeringsspråk. Höger? Men det är precis vad Ruby on Rails är. Ruby on Rails, mer vanligt kallad som bara Rails, är ett rent objektorienterat programmeringsspråk med enkel och användarvänlig ren syntax. Och genom att betyda enkel och användarvänlig betyder det att du kan få en webbapplikation klar mycket snabbare än med något annat programmeringsspråk. För att gå live behöver du bara webbserver och databas. Och såklart några pärlor! En av de bästa delarna med Ruby är den enorma listan med kategoriserade, återanvändbara koder som lämpligen kallas "ädelstenar". Skönheten med Ruby on Rails ligger i det faktum att du med hjälp av dessa ädelstenar kan skapa applikationer enkelt och med betydligt mindre ansträngningar jämfört med andra teknologier. Läs vidare för att veta om Rasque som är en pärla för att skapa bakgrundsjobb. Resque skapar bakgrundsjobb med Redis. Eftersom det stöder flera köer kan vi placera dem på flera köer och bearbeta dem senare också. Och det kommer med ett administrationsgränssnitt för övervakning och hantering av köerna. Resque är avsedd att användas i situationer där stora mängder jobbanmälan krävs, och tillhandahåller mekanismer för att säkerställa reflektion och konsekvent beteende samtidigt som statistik tillhandahålls med hjälp av en webbinstrumentpanel. När vi har ett långt bearbetningsblock med kod som vi inte behöver för att köra det i vår webbapplikationsförfrågan, är ett kösystem för bakgrundsbearbetning den enda bra lösningen. Därför får vi snabbare rubinapplicering. Även om Resque är inspirerad av DelayedJob till stor del, om vi behöver flera köer i vår APP, är Resque förmodligen ett bättre val.
Välj Resque om:
- Du behöver flera köer
- Du är inte särskilt sugen på numeriska prioriteringar
- Du jobbar med enorma köer
- Du arbetar med Redis
- Du kommer inte att få ont om RAM
bash: brew installera redis redis-server /usr/local/etc/redis.conf resque-web rake resque:work QUEUE='*'Gemfil:
gem 'resque', :require => "resque/server" Installera den nya gem: bundle install Skapa en redis config-fil som heter redis.yml i config: defaults: &defaults host: localhost port: 3002 development: <<: *defaults test : <<: *defaults staging: <<: *defaults production: <<: *defaultsLägg till en initialiseringsfil som heter resque.rb i config/initializers:
Dir[File.join(Rails.root, 'app', 'jobs', '*.rb')].each { |fil| kräver fil } config = YAML::load(File.open(“#{Rails.root}/config/redis.yml”))[Rails.env] Resque.redis = Redis.new(:host => config[' host'], :port => config['port'])Lägg till resque.rake till lib/tasks:
kräver 'resque/tasks' uppgift "resque:setup" => :miljöKör Resque:
starta redis: redis-server start resque COUNT=5 QUEUE=* rake resque:arbetare se webbgränssnittet: resque-webSå här lägger du till Resque-jobb:
Skapa en jobbklass: class FeedsCollectionJob @queue = :feeds_collection_job def self.perform(start_date, end_date) sätter "från #{start_date} till #{end_date}" #TODO din långa process här slut slutKör det med: Resque.enqueue(FeedsCollectionJob, start_date, end_date) Detta kommando kommer inte att blockera så att du kan bädda in den här koden i en modell. Arbetare: Den kan fördelas mellan olika maskiner, stöder kärnprioriteringarna, är motståndskraftig mot minnes "läckor" och är optimerad.
Resque-arbetare är rake-uppgifter som pågår för evigt. start loop gör om jobb = reservera jobb.process annars vila 5 # frekvens = 5 slut slut avstängningSå här startar du en arbetare:
$ QUEUE=file_serve rake resque:workVi kommer att behöva ladda vår applikation i minnet. När du har installerat Resque as Rails-plugin kan vi köra det här kommandot från vår RAILS_ROOT:
$ QUEUE=file_serve rake miljö resque:workDärför laddar det miljön nu kan du starta en Worker. Annat än detta kan vi skriva en resque:setup-uppgift med ett beroende av miljörake-uppgiften:
uppgift "resque:setup" => :miljöIntrospektion: Det bör finnas ett antal sätt att introspektera Resques beteende. Jag skulle rekommendera det bästa stället att göra detta på, den inbyggda Resque webbinstrumentpanelen. http://localhost:3000/resque Här skulle vi tillåta att inspektera köer, arbetare, aktuella arbetsjobb, misslyckade jobb och stackspår, och användbar redis-statistik. Vi kan göra samma sak genom att använda konsolen;
Resque.info Resque.queues Resque.redis Resque.size(queue_name) Resque.peek(queue_name, start=1, count=1) Resque.workers Resque.workingNåväl där har du det! Den här artikeln hoppas kunna ge information om resque, hur man konfigurerar den, hur denna pärla är fördelaktig och hjälper dig att bygga snabbare presterande ruby-app. Har du en bra idé till en app och vill få den utvecklad så snabbt som möjligt? Gå till Ruby on Rails och medan du håller på, vet att RailsCarma är ett utmärkt val för din apputveckling. Railscarma har implementerat Ruby on Rails från dess begynnande stadier för utveckling, utbildning, distribution och bidrag tillbaka till Rails Community och tillhandahåller bästa Ruby on Rails utvecklingstjänster. RailsCarma tillhandahåller Ruby on Rails-tjänster, inklusive konsulttjänster, arkitektur, byggnad, förvaltning och utbyggnad, till företag över hela världen. Du kan också anlita Ruby on Rails-utvecklare med en lättanställd process. Kontakta oss att veta mer. Läs fler liknande artiklar:
Prenumerera för de senaste uppdateringarna
relaterade inlägg