【问题标题】:how can I schedule a something to run every day, every two days, every three days from start date我如何安排从开始日期开始每天、每两天、每三天运行一次
【发布时间】:2016-06-09 03:22:50
【问题描述】:

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

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_day 或 every_7_day 的任务的每一天。

【问题讨论】:

  • ice_cube 可以处理您的重复事件。我已经广泛使用了这颗宝石,而且它很坚固。
  • @MarsAtomic 这个宝石看起来很有希望。

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


【解决方案1】:

无论何时使用 gem

在轨道 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 值。

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    相关资源
    最近更新 更多