rails + sideqik ...如何在特定日期和时间执行任务

时间:2014-05-02 19:06:23

标签: ruby-on-rails-3 datetime cron sidekiq whenever

我在rails应用中使用https://github.com/mperham/sidekiq gem来安排特定日期和时间的任务。 例如:在预约时间表前10分钟发送预约提醒。

class TextWorker
include Sidekiq::Worker

    def perform(appointer_id)
        number = Usermodel.find_by_id(appointer_id).contact
        Message.create(:from =>  email, 
                           :to =>   number,
                               :body => 'Thank you...Your appointment is at 10/1/2015 Sun, at 12pm')
    end

end

并在约会控制器中调用它:

class Appointments_controller

def create
    TextWorker.delay_until(10/20/2014, 13:40).perform_async(@user_contact)
end

delay_until不适用于特定的日期/时间:

有没有其他方法可以在sideqik的特定日期/时间执行任务?如果是这样的话?请

1 个答案:

答案 0 :(得分:4)

你可以传递计算的差异,以便发送sidekiq期望的

e.g。 DateTime.parse("10/20/2014")-DateTime.now

所以:

  delay_interval = DateTime.parse("10/20/2014")-DateTime.now
  TextWorker.delay_until(delay_interval).perform_async(@user_contact)