Sidekiq Gem för bakgrundsjobb inom Rails

Om du arbetar med många poster och om det tar mycket tid för dess drift som att importera eller exportera tusentals poster eller synkronisera fler poster, är det bättre att lägga till det i bakgrundsjobbet.

Sidekiq är pärlan som kan användas för detta ändamål. Sidekiq använder flera trådar. Standardtråden i sidekiq är "Standard".

*
För sidekiq måste vi installera redis-servern.

"sudo apt-get install redis" installera och starta redis-servern för din konsol.

* Lägg till sidekiq pärla och kör buntinstallation.

pärla 'sidekiq'

* Vi måste generera arbetarklassen under app/workers-katalogen och filerna i app/workers-katalogen kommer att laddas automatiskt.
Ex: /app/workers/test_worker.rb

klass TestWorker inkluderar Sidekiq::Worker def perform end end

vi måste inkludera Sidekiq::Worker and perform method. Utför metod inuti arbetaren kommer att anropas automatiskt och koden som behöver köras i bakgrunden skrivs här.

Vi kan kalla den här arbetarklassen för kontrollmetoden så här,

TestWorker.perform_async (om du vill skicka argumenten kan du skicka här).
* Därefter måste vi starta sidekiq server genom

bundle exec sidekiq

* Om ett jobb misslyckas på grund av ett fel kommer Sidekiq att försöka igen. Vi kan undvika ett nytt försök genom att ge sidekiq-alternativ.

sidekiq_options försök igen: falskt


*
I sidekiq kan vi schemalägga jobbet efter en tid. För detta istället för perform_async kommer vi att använda perform_in.
Ex: PygmentsWorker.perform_in(1.hour, @snippet.id)

* Vi kan prioritera kön i sidekiq till exempel om vi har flera arbetare i vår applikation och om vi vill att specifik arbetare ska behandlas först, kommer vi att tilldela arbetaren den specifika kön.
EX: sidekiq_options kö: "hög"

* vi kan bearbeta kön genom att köra sidekiq-servern med -q-alternativet.
bundle exec sidekiq -q high,5 default,1

RailsCarma har erbjudit ROR Utvecklingstjänster under de senaste 8 åren. Våra utvecklare är väl insatta i att utföra alla slags ruby on rails applikationsutveckling projekt och förbättra funktionerna i dina befintliga Rails-applikationer. Kontakta oss för att veta mer om vår utvecklingskompetens och de projekt vi har arbetat med.

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