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

mag*_*tic 5 cron datetime whenever ruby-on-rails-3 sidekiq

我在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
Run Code Online (Sandbox Code Playgroud)

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

class Appointments_controller

def create
    TextWorker.delay_until(10/20/2014, 13:40).perform_async(@user_contact)
end
Run Code Online (Sandbox Code Playgroud)

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

还有其他方法可以在sideqik中的特定日期/时间执行任务吗?如果是这样怎么办?请

blo*_*tto 5

您可以传递计算出的差异以发送sidekiq期望的结果

例如 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)
Run Code Online (Sandbox Code Playgroud)