【问题标题】:Send notification to user after a while Rails一段时间后向用户发送通知 Rails
【发布时间】:2015-11-30 09:40:39
【问题描述】:

我有这样的场景:一个用户购买了一个产品,当交易处理完两天后,我需要给买家发送邮件通知。

此时我的想法是使用whenever gem 并检查构建一个 cron 作业以每天签入,如果 2 天过去了,如果为真,则 cron 作业将发送邮件通知。

我不知道这样做是否可以...你能给我更好的解决方案吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4.2 cron-task


    【解决方案1】:

    您可以将ActiveJobperform_later 一起使用,例如:

    NotificationSendJob.set(wait: 2.days).perform_later(record)
    

    请注意,并非所有后端都支持这一点。你可以在这里查看检查特征矩阵:http://api.rubyonrails.org/classes/ActiveJob/QueueAdapters.html

    【讨论】:

      【解决方案2】:

      我建议使用sidekiq,它是一个后台处理库,而不是任何时候使用。 cron 作业必须每天执行(在您的特定情况下)。它不考虑是否必须发送邮件。即使没有要发送的邮件,作业仍然会执行,这是一种错误的做法。

      您可以使用诸如 sidekiq 之类的后台处理库在后台调度作业。结帐https://github.com/mperham/sidekiq/wiki/Scheduled-Jobs

      【讨论】:

      • 非常有趣。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多