resque-scheduler から enqueue され ActiveJob を経由しないので型不一致でエラーになってしまう。
しかしちゃんと resque-scheduler 側に逃げ口が用意されているのでそれを利用する。
https://github.com/resque/resque-scheduler/blob/master/lib/resque/scheduler.rb#L265
Job クラスに scheduled クラスメソッドを定義してそこで ActiveJob からキューにいれればいい。
moduel JobHelper
extend ActiveSupport::Concern
module ClassMethods
def scheduled(queue, klass_name, *params)
self.set(queue: queue).perform_later(*params)
end
end
end
class MyJob < ActiveJob::Base
include JobHelper
queue_as :default
def perform(*args)
# ...
end
end