I recently upgraded Sidekiq (5 to 6) and consequently none of my sidekiq-cron jobs are queueing. It fails when enqueueing because of not finding the method perform_later job for ActiveJob. I can't find any similar issues online. Anybody have ideas on why this would be unavailable now?

Gems:


ruby '2.7.8'
gem 'rails', '~> 5.2.0.beta2'
gem 'sidekiq', '~> 6.5.9'
gem "sidekiq-cron", '>= 1.12.0'

Error:

pid=2 tid=295q ERROR: CRON JOB: undefined method `perform_later' for #<Sidekiq::Worker::Setter:0x00007fd1af1929f8>
2024-03-01T15:40:01.664863+00:00 app[worker.1]: Did you mean?  perform_at
2024-03-01T15:40:01.664865+00:00 app[worker.1]: pid=2 tid=295q ERROR: CRON JOB: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/job.rb:98:in `enqueue_active_job'
2024-03-01T15:40:01.664865+00:00 app[worker.1]: pid=2 tid=295q WARN: NoMethodError: undefined method `perform_later' for #<Sidekiq::Worker::Setter:0x00007fd1af1929f8>
2024-03-01T15:40:01.664865+00:00 app[worker.1]: Did you mean?  perform_at
2024-03-01T15:40:01.664866+00:00 app[worker.1]: pid=2 tid=295q WARN: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/job.rb:98:in `enqueue_active_job'
2024-03-01T15:40:01.664867+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/job.rb:65:in `enque!'
2024-03-01T15:40:01.664868+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/job.rb:45:in `test_and_enque_for_time!'
2024-03-01T15:40:01.664868+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/poller.rb:36:in `enqueue_job'
2024-03-01T15:40:01.664869+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/poller.rb:23:in `block in enqueue'
2024-03-01T15:40:01.664869+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/poller.rb:22:in `each'
2024-03-01T15:40:01.664870+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-cron-1.12.0/lib/sidekiq/cron/poller.rb:22:in `enqueue'
2024-03-01T15:40:01.664870+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-6.5.12/lib/sidekiq/scheduled.rb:100:in `block in start'
2024-03-01T15:40:01.664870+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
2024-03-01T15:40:01.664870+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
2024-03-01T15:40:01.664871+00:00 app[worker.1]: D, [2024-03-01T15:40:01.663634 #2] DEBUG -- : undefined method `perform_later' for #<Sidekiq::Worker::Setter:0x00007fd1af1929f8>
2024-03-01T15:40:01.664872+00:00 app[worker.1]: Did you mean?  perform_at excluded from capture: DSN not set
1

There are 1 best solutions below

0
Ladybro On

I was able to get my jobs queueing again by setting active_job: false based on this issue: https://github.com/sidekiq-cron/sidekiq-cron/issues/430

h/t @smathy