retry retries remove practices password job generate best ruby sidekiq

ruby - retries - sidekiq retry queue



Obtenga sidekiq para ejecutar un trabajo de inmediato (1)

Por el momento, tengo un trabajo sidekiq como este:

class SyncUser include Sidekiq::Worker def perform(user_id) #do stuff end end

Estoy colocando un trabajo en la cola de esta manera:

SyncUser.perform_async user.id

Todo esto funciona, por supuesto, pero hay un pequeño desfase entre llamar a perform_async y el trabajo que realmente se está ejecutando.

¿Hay algo más que pueda hacer para decirle a sidekiq que ejecute el trabajo de inmediato?


Hay dos preguntas aquí.

Si desea ejecutar un trabajo de inmediato, en el contexto actual puede usar:

SyncUser.new.perform(user.id)

Si desea disminuir la demora entre el trabajo asincrónico que se programa y cuando se ejecuta en el trabajador de sidekiq, puede disminuir la configuración de poll_interval :

Sidekiq.configure_server do |config| config.poll_interval = 2 end

poll_interval es la demora dentro de los backends de los trabajadores de la frecuencia con que los trabajadores poll_interval trabajos en la cola. El tiempo promedio entre un trabajo programado y ejecutado con un trabajador libre será poll_interval / 2 .