ユーザーが指定した時間に実行したいメール配信ジョブがあります。メールを配信する日時列deliver_atがあります。バックグラウンドジョブの実行に遅延ジョブを使用しています。
遅延ジョブでは、ジョブをスケジュールする正確な時間ではなく、時間差を指定できます。
GiftCardMailerJob.set(wait: delay_by.minutes.from_now).perform_later(go)
Deliver_at時間を直接指定し、その時間に遅延ジョブを実行する方法はありますか?
そうでない場合、どうすれば時差に到達できますか?
((deliver_at - Time.now) / 60).minutes.from_now
正しいアプローチである必要がありますか?
あなたはでenqueue
方法を使用することができますdelayed_jobs
Delayed::Job.enqueue(GiftCardMailerJob.new, :run_at => deliver_at)
delayed_jobs
データベースにテーブルが表示されている場合、run_at
フィールドはタイプでdatetime
あり、任意のdatetime
値を指定できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加