Sidekiq Gem per lavori in background in Rails

Se lavori con molti record e se le sue operazioni richiedono molto tempo, come l'importazione o l'esportazione di migliaia di record o la sincronizzazione di più record, è meglio aggiungerlo al lavoro in background.

Sidekiq è la gemma che può essere utilizzata per questo scopo. Sidekiq utilizza più thread. Il thread predefinito in sidekiq è "Predefinito".

*
Per sidekiq, dobbiamo installare il server Redis.

“sudo apt-get install redis” installa e avvia il server Redis per la tua console.

* Aggiungi il gem sidekiq ed esegui l'installazione del bundle.

gemma 'sidekiq'

* Dobbiamo generare la classe lavoratore nella directory app/workers e i file all'interno della directory app/workers verranno caricati automaticamente.
Esempio: /app/workers/test_worker.rb

la classe TestWorker include Sidekiq::Worker def esegue end end

dobbiamo includere Sidekiq::Worker ed eseguire il metodo. Il metodo Perform all'interno del lavoratore verrà chiamato automaticamente e il codice che deve essere eseguito in background verrà scritto qui.

Possiamo chiamare questa classe lavoratore per il metodo controller come questo,

TestWorker.perform_async (se vuoi passare gli argomenti puoi passarli qui).
* Successivamente dobbiamo avviare il server sidekiq

bundle exec sidekiq

* Se un lavoro fallisce a causa di un errore, Sidekiq ritenterà il lavoro. Possiamo evitare il nuovo tentativo fornendo le opzioni sidekiq.

sidekiq_options riprova: falso


*
In sidekiq possiamo programmare il lavoro dopo un po' di tempo. Per questo invece di perform_async useremo perform_in.
Esempio: PygmentsWorker.perform_in(1.hour, @snippet.id)

* Possiamo dare la priorità alla coda in sidekiq, ad esempio se abbiamo più lavoratori nella nostra applicazione e se vogliamo che un lavoratore specifico venga elaborato per primo, assegneremo il lavoratore alla coda specifica.
EX: coda sidekiq_options: “alta”

* possiamo elaborare la coda eseguendo il server sidekiq con l'opzione -q.
bundle exec sidekiq -q alto,5 predefinito,1

RailsCarma ha offerto Servizi di sviluppo ROR negli ultimi 8 anni. I nostri sviluppatori sono esperti nell'esecuzione di tutti i tipi di sviluppo di applicazioni Ruby on Rails progetti e migliorando le funzionalità delle applicazioni Rails esistenti. Contattaci per saperne di più sulle nostre capacità di sviluppo e sui progetti su cui abbiamo lavorato.

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian