【问题标题】:Rails: How to check if an email is already enqueuedRails:如何检查电子邮件是否已入队
【发布时间】:2016-12-06 22:11:50
【问题描述】:

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

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 排队,如果同一用户已在队列中,我不想将同一电子邮件发送给同一用户。

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

【问题讨论】:

    标签: ruby-on-rails email ruby-on-rails-4 delayed-job rails-activejob


    【解决方案1】:

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

    Delayed::Job.where(...)
    

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

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多