我是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
到目前为止一切正常,但现在我想在我的通知页面中显示通知消息(我可以从'reminder = Reminder.find(args ['id'])'获得)。我怎么能这样做?
答案 0 :(得分:0)
如果要在用户页面上显示此消息,则应使用某种持久的pub / sub客户端 - 服务器连接,这将在sidekiq中提供。在Rails 5中,它可能是ActionCable,在以前版本的Rails中 - Faye或类似的东西。