【发布时间】:2014-08-02 13:43:13
【问题描述】:
所以我的模型中有一个 Sidekiq 工作者,如下所示:
class Perk < ActiveRecord::Base
include Sidekiq::Worker
include Sidekiq::Status::Worker
after_save :update_release_time
def update_release_time
if self.release_time_changed?
#if scheduled job already exists then cancel and reschedule
# Sidekiq::Status.cancel scheduled_job_id
# scheduled_job_id = NotifierWorker.perform_at(time.seconds.from_now, .....)
#elsif scheduled job doesn't exist, then schedule for the first time
# scheduled_job_id = NotifierWorker.perform_at(time.seconds.from_now, .....)
#end
end
end
end
所以基本上,我的代码会检查发布时间是否已更改。如果有,那么它必须取消先前安排的作业并将其安排在新的时间。我如何实现这一点,即用什么代替我的伪代码?如何检查scheduled_job_id 是否存在然后获取它的id?
【问题讨论】:
标签: ruby-on-rails sidekiq