Gema Sidekiq para trabajos en segundo plano en Rails

Si está trabajando con muchos registros y si está tomando mucho tiempo para su operación como importar o exportar miles de registros o sincronizar más registros, es mejor agregarlo al trabajo en segundo plano.

Sidekiq es la gema que se puede utilizar para este propósito. Sidekiq utiliza múltiples hilos. El hilo por defecto en sidekiq es "Por defecto".

*
Para sidekiq, necesitamos instalar el servidor redis.

"sudo apt-get install redis" instala e inicia el servidor redis para tu consola.

* Añade la gema sidekiq y ejecuta bundle install.

gema 'sidekiq

* Necesitamos generar la clase worker bajo el directorio app/workers y los archivos dentro del directorio app/workers serán auto cargados.
Ej: /app/workers/test_worker.rb

clase TestWorker
       include Sidekiq::Trabajador
       def realizar
       end
    end

necesitamos incluir Sidekiq::Worker y el método perform. El método Perform dentro del trabajador será llamado automáticamente y el código que necesita ser ejecutado en segundo plano se escribe aquí.

Podemos llamar a esta clase de trabajador para el método de controlador de la siguiente manera,

TestWorker.perform_async (si quieres pasar los argumentos puedes pasarlos aquí).
* A continuación tenemos que iniciar el servidor sidekiq por

bundle exec sidekiq

* Si un trabajo falla debido a un error Sidekiq reintentará ese trabajo. Podemos evitar el reintento dando opciones a sidekiq.

sidekiq_options retry: false


*
En sidekiq podemos programar el trabajo después de algún tiempo. Para ello en lugar de perform_async usaremos perform_in.
Ejemplo: PygmentsWorker.perform_in(1.hour, @snippet.id)

* Podemos priorizar la cola en sidekiq, por ejemplo, si tenemos varios trabajadores en nuestra aplicación y si queremos que un trabajador específico sea procesado primero, asignaremos el trabajador a la cola específica.
EX: sidekiq_options cola: "alta"

* podemos procesar la cola ejecutando el servidor sidekiq con la opción -q.
bundle exec sidekiq -q high,5 default,1

RailsCarma ha estado ofreciendo Servicios de desarrollo de ROR durante más de 8 años. Nuestros desarrolladores están bien versados en la ejecución de todo tipo de Desarrollo de aplicaciones Ruby on Rails. proyectos y mejorando las características de sus aplicaciones Rails existentes. Contáctenos para saber más sobre nuestras habilidades de desarrollo y los proyectos en los que hemos trabajado.

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Acerca del autor de la publicación

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


es_ESSpanish