【问题标题】:ActionCable unable to call on periodic timersActionCable 无法调用定期计时器
【发布时间】:2016-05-03 11:33:32
【问题描述】:

这在 Rails 中没有记录,但 ActionCable 有一个名为 PeriodicTimers 的模块 https://github.com/rails/rails/blob/master/actioncable/lib/action_cable/channel/periodic_timers.rb

现在在我的app/channels/requests_channel.rb 中,我尝试通过以下方式进行测试:

class RequestsChannel < ApplicationCable::Channel
  periodically :transmit_status, every: 2.seconds

  def subscribed
      stream_from "requests_#{current_user.id}"
  end

  def unsubscribed
  end

  private

  def transmit_status
    puts "ping"
  end
end

当我连接并订阅流时,控制台中没有显示任何内容。我觉得 ActionCable 中的代码相当简单,这应该可以工作,但我无法让它工作。有人有这方面的经验吗?

【问题讨论】:

  • 我已经研究了几个小时,试图理解为什么这不起作用。我也想设置定期定时器。

标签: ruby-on-rails actioncable


【解决方案1】:

在 Rails 5.2.0 中,两者都

  periodically every: 5.seconds do
    transmit payload: 'some_payload'
  end

还有,

periodically :transmit_device_status, every: 5.seconds

def transmit_device_status
  transmit payload: 'some_payload'
end

第一次尝试就为我工作。抱歉,我无法告诉您为什么它最初对您不起作用,但它可能对其他人有所帮助,因为这是我在该主题上找到的为数不多的帖子之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2017-11-25
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    相关资源
    最近更新 更多