Rails Active Job
Active Jobは、
時間差で処理を実行できるようなものです。
Jobの作成方法は、以下のコマンドを実行
rails g job ジョブ名
以下のようなジョブができます
class ジョブ名 < ActiveJob::Base
queue_as :default
def perform(*args)
# 実行したいことを書く
end
end
*argsの部分に自由に引数を入れられます。
Jobを呼び出す方法
一週間後に実行したい場合
ジョブ名.set(wait: 1.week).perform_later(*args)
すぐに呼び出したい場合
ジョブ名.perform_now(*args)
特定の時間に呼び出したい場合
now_time = Time.now.to_i (現在時刻)
release_time = リリースする日時と時間
wait_time = (release_time - now_time)
ジョブ名.set(wait: wait_time.seconds).perform_later(*args)
wait_time.secondsで差分を秒に変換してJobをセットしています。
他にも、Jobオプションは、いろいろあるので調べてみてください