【问题标题】:How to create recurring notifications in Rails from an admin interface?如何从管理界面在 Rails 中创建定期通知?
【发布时间】:2016-02-07 19:14:13
【问题描述】:

我想在我的调查应用程序中创建一个新功能,让用户可以设置每日、每周等有关其调查统计信息的通知。此外,如果用户不再需要这些通知,或者他们的调查结束,我想让用户删除这些通知。

创建一个 Notification 模型似乎相当简单,它存储有关通知的必要信息,但是我如何安排它每天、每周(无论用户设置什么)等发送带有统计信息的电子邮件。

当然,我每次都可以使用delayed_job 或resque 并重新安排,但这似乎不是一个优雅的解决方案。

任何想法如何以最优雅、最有效的方式实现这一目标?

【问题讨论】:

    标签: ruby-on-rails cron scheduled-tasks delayed-job recurring


    【解决方案1】:

    我想你会发现whenevergem 很有用

    这是一个示例语法:

    every 3.hours do
      runner "MyModel.some_process"
      rake "my:rake:task"
      command "/usr/bin/my_great_command"
    end
    
    every 1.day, :at => '4:30 am' do
      runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
    end
    

    【讨论】:

    • 嗨,Maciek!感谢您的输入。我知道什么时候 gem 并且我经常使用它,例如创建/更新站点地图。但我不确定如何从 Web 界面激活/停用其中的重复任务。
    • 嗯...也许您可以编写一个 cron 来检查哪些用户需要通知并相应地发送它?如果您有很多用户,这可能需要一段时间,所以我可能会使用 [sidekiq][github.com/mperham/sidekiq] worker
    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多