Sidekiq

时间:2016-01-12 10:22:51

标签: ruby-on-rails ruby angularjs sidekiq

我是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'])'获得)。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

如果要在用户页面上显示此消息,则应使用某种持久的pub / sub客户端 - 服务器连接,这将在sidekiq中提供。在Rails 5中,它可能是ActionCable,在以前版本的Rails中 - Faye或类似的东西。