错误:CRON 作业:#<Sidekiq::Worker::Setter:0x00007fd1af1929f8> 的未定义方法“perform_later”。你的意思?执行于

问题描述 投票:0回答:1

我最近升级了 Sidekiq(5 到 6),因此我的 sidekiq-cron 作业都没有排队。由于找不到 ActiveJob 的方法

perform_later
作业,入队时失败。我在网上找不到类似的问题。有人知道为什么现在不可用吗?

宝石:


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

错误:

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
ruby-on-rails sidekiq sidekiq-cron
1个回答
0
投票

根据此问题,我可以通过设置

active_job: false
使我的作业再次排队:https://github.com/sidekiq-cron/sidekiq-cron/issues/430

h/t @smathy

© www.soinside.com 2019 - 2024. All rights reserved.