簡體   English   中英

在特定時間運行延遲作業

[英]Run Delayed Job at a specific time

我有一個電子郵件傳送作業,我想在用戶指定的時間運行它。 我有一個日期時間列deliver_at,我應該在其中發送電子郵件。 我正在使用延遲作業來執行后台作業。

延遲作業允許我指定時間差而不是調度作業的確切時間。

  GiftCardMailerJob.set(wait: delay_by.minutes.from_now).perform_later(go)

有沒有辦法直接給deliver_at時間並在那個時候運行延遲的作業?

如果不是,我怎樣才能到達時差?

((deliver_at - Time.now) / 60).minutes.from_now

正確的做法應該是?

你可以在delayed_jobs使用enqueue方法

Delayed::Job.enqueue(GiftCardMailerJob.new, :run_at => deliver_at)

如果您在數據庫中看到delayed_jobs表,則run_at字段的類型為datetime ,您可以為它設置任何datetime值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM