Get sidekiq to execute a job immediately Get sidekiq to execute a job immediately ruby ruby

Get sidekiq to execute a job immediately


There are two questions here.

If you want to execute a job immediately, in the current context you can use:

SyncUser.new.perform(user.id)

If you want to decrease the delay between asynchronous work being scheduled and when it's executed in the sidekiq worker, you can decrease the poll_interval setting:

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

The poll_interval is the delay within worker backends of how frequently workers check for jobs on the queue. The average time between a job being scheduled and executed with a free worker will be poll_interval / 2.


For those who are using Sidekiq via the Active Job framework, you can do

SyncUser.perform_now(user.id)