我在ROR是新的,我使用'Sidekiq‘来调度提醒。我可以通过"Sidekiq“成功地安排提醒作业/消息。这是'reminder.rb‘的代码
class Reminder < ActiveRecord::Base
belongs_to :user
belongs_to :status_value
belongs_to :communication
after_create :add_sidekiq_job
# before_destroy :remove_sidekiq_job
def add_sidekiq_job
id = ReminderWorker.perform_at(scheduled_at, {id: self.id.to_s})
# self.update_attributes(job_id: id)
end
def remove_sidekiq_job
queue = Sidekiq::ScheduledSet.new
job = queue.find_job(self.job_id)
job.delete if job
end
def scheduled_at
self.notification_time.to_time.to_i - Time.now.to_i
end
end这是'reminderworker.rb‘的代码,在这里我可以通过传递id获得’提醒/通知消息‘。
class ReminderWorker
include Sidekiq::Worker
def perform(args)
reminder = Reminder.find(args['id'])
puts "~~~~~Notificaiton~~~~~~~~"
end
end 到目前为止,一切都在正常工作,但现在我希望在通知页面中显示通知消息(我可以从‘till =Reminder.find(args’i‘)’获得通知消息。我怎么能这么做?
发布于 2016-01-12 10:39:29
如果您想在用户页面上显示此消息,您应该使用某种持久化的pub/sub server连接,这将在sidekiq中可用。在Rails 5中,它可能是ActionCable,在Rails的早期版本中- 费耶或类似的东西。
https://stackoverflow.com/questions/34741023
复制相似问题