我在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的特定日期/时间执行任务?如果是这样的话?请
答案 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)