Search code examples
ruby-on-railsredissidekiqrails-activejob

ActiveJob not showing up in Sidekiq queue


ActiveJob assigns don't seem to show up in the sidekiq queues.. But the jobs still get executed.

This is my active_job setup in config/environments/production.rb

  config.active_job.queue_adapter     = :sidekiq
  config.active_job.queue_name_prefix = "faces_#{Rails.env}"

My sidekiq.yml that gets loaded via Capistrano.

---
:concurrency: 5
:queues:
  - default

production:
  :concurrency: 20
  :queues:
    - faces_production_default

Sample output when I start to queue a job and check if it's there.

2.6.3 :001 > require 'sidekiq/api'
 => true 
2.6.3 :002 > Sidekiq::Queue.new('faces_production_default').count
 => 0 
2.6.3 :003 > stats = Sidekiq::Stats.new
 => #<Sidekiq::Stats:0x0000000004dd80e8 @stats={:processed=>48, :failed=>0, :scheduled_size=>1, :retry_size=>0, :dead_size=>0, :processes_size=>2, :default_queue_latency=>0, :workers_size=>0, :enqueued=>0}> 
2.6.3 :004 > stats.queues
 => {"default"=>0, "faces_production_default"=>0, "mailers"=>0} 
2.6.3 :005 > FaceParserJob.set(wait: 5.minutes).perform_later(200)
Enqueued FaceParserJob (Job ID: 9848e560-dbf5-4fc0-a3c3-6b8f00164a8a) to Sidekiq(faces_production_default) at 2019-04-28 15:16:25 UTC with arguments: 200
 => #<FaceParserJob:0x0000000004f19b00 @arguments=[200], @job_id="9848e560-dbf5-4fc0-a3c3-6b8f00164a8a", @queue_name="faces_production_default", @priority=nil, @executions=0, @scheduled_at=1556464585.1313956, @provider_job_id="43d2c83a305411bfda6626b1"> 
2.6.3 :006 > Sidekiq::Queue.new('faces_production_default').count
 => 0  

Thing is if I monitor the sidekiq.log in 5 minutes it does execute the job. What am I doing wrong?


Solution

  • Job is put into a queue only when it's being "launched", until then - it waits in scheduled queue, you can check with

    Sidekiq::ScheduledSet.new.size