Rails: 如何检查电子邮件是否已排队

Rails: How to check if an email is already enqueued

如何检查电子邮件是否已排队,我正在使用活动作业:

ofert_approved_notifier = Notifier.ofert_approved(@ofert.user, @ofert)
   if ofert_approved_notifier.deliver_later(wait: 1.hour)
      puts "Email ofert_approved sent successfully"
   else
      puts "Email ofert_approved could not be sent"
   end

正如你在上面看到的,我正在向 @ofert.user 发送一封电子邮件,它在发送前延迟了 1 小时,上面的代码在控制器操作中,我想检查电子邮件是否已经排队对于 @ofert.user,如果已经在队列中,我不想向同一用户发送相同的电子邮件。

有什么方法可以检查吗?谢谢

Delayed::Job 是一个 ActiveRecord 对象,因此您可以检查记录是否存在。

Delayed::Job.where(...)

查看存储记录的结构,了解您的电子邮件工作人员是如何存储的以及如何通过电子邮件找到他们。祝你好运!