Redisサーバー上でresque_scheduler gemを使用してバックグラウンドジョブを作成しています。アクティブジョブのRails set(wait:2minutes)メソッドが機能しません。
class Estamps::OrderAssignment < ActiveRecord::Base
after_save :enqueue_check_status
def enqueue_check_status
AutoRejectionJob.set(wait: 2.minutes).perform_later(self.id)
end
end
class AutoRejectionJob < ActiveJob::Base
queue_as :default
def perform(*args)
order_assignment_id = args[0]
order_assignment = Estamps::OrderAssignment.find(order_assignment_id)
if order_assignment.status_id == 1 || order_assignment.status_id == nil
order_assignment.status_id = 3
order_assignment.save!
end
end
end
OrderAssignmentレコードの作成時、または2分後に更新された場合、自動返却ジョブが実行されます。ここでPROBは(待ち時間:2.minutes)がセットされて実行していないようです、すなわち
AutoRejectionJob.perform_later(self.id)
は完全に正常に動作しますが、
AutoRejectionJob.set(wait: 2.minutes).perform_later(self.id)
は何もしません。問題を解決できませんでした。初心者から大人まで、大変助かります。