如何从开始日期开始计划每天,每两天,每三天运行一次

时间:2016-06-09 03:22:51

标签: ruby-on-rails ruby ruby-on-rails-4 scheduled-tasks

我必须从服务器发送通知。它们的触发时间是动态的,并且对于每次通知都不一样。对于每个通知,它都附加了触发时间。 例如

notification_id  start_date   end_date      time   recurring_time
    1            2016-06-06    2016-06-20   12-pm  every_1_day
    2            2016-06-06    2016-06-20   4-pm   every_2_day
    3            2016-06-06    2016-06-20   1-am   every_2_week
    4            2016-06-06    2016-06-20   3-pm   every_month

我在考虑使用whenever gem,但它也需要像every 1.hour do

这样的特定时间

如何每天检查我需要从开始日期开始每隔_2天或每隔7天执行一次任务。

1 个答案:

答案 0 :(得分:1)

随时随地使用

在rails 4

    require File.expand_path('../..//config/environment.rb', __FILE__)

# This is your table by which you will get your new value 

    bid_update = DynamicOfferTime.first

# Now Task As

    every (bid_update.hour_value).hours do
      puts "This will repeat in every #{bid_update.hour_value} hour"
    end

现在再做一个rake任务,它将在启动你的主要cron作业之前更新DynamicOfferTime.first值。