加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Sidekiq Job中播放Action Cable

发布时间:2020-12-16 22:49:16 所属栏目:百科 来源:网络整理
导读:我在Docker环境中使用Rails 5,我可以使用worker.new.perform让Action Cable在Sidekiq worker上完全正常播放. 但是对于我的生活,我在使用worker.perform_async时无法进行广播. 这是我的cable.yml: default: default adapter: redis url: %= ENV['REDIS_PROVI
我在Docker环境中使用Rails 5,我可以使用worker.new.perform让Action Cable在Sidekiq worker上完全正常播放.

但是对于我的生活,我在使用worker.perform_async时无法进行广播.

这是我的cable.yml:

default: &default
 adapter: redis
 url: <%= ENV['REDIS_PROVIDER'] %>

development:
 <<: *default

test:
  <<: *default

production:
  <<: *default

这是我的工人:

class AdminWorker
  include Sidekiq::Worker

  def perform
    ActionCable.server.broadcast 'admin_channel',content: 'hello'
  end
 end

我的管理频道:

class AdminChannel < ApplicationCable::Channel
 def subscribed
  stream_from "admin_channel"
 end

 def unsubscribed
  # Any cleanup needed when channel is unsubscribed
 end
end

正如我之前提到的,调用AdminWorker.new.perform时,这很好用.一旦我尝试运行AdminWorker.perform_async,电缆就不会广播,对日志中的动作电缆没有任何帮助.我在这里错过了什么?

解决方法

我有同样的问题.遇到了这个答案: ActionCable.server.broadcast from the console – 为我工作.基本上只是改变了cable.yml
development:
  adapter: async

development:
  adapter: redis
  url: redis://localhost:6379/1

我能够从控制台,模型,Sidekiq工人班等广播.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读