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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在Sidekiq Job中播放Action Cable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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工人班等广播.

原文链接:https://www.f2er.com/ruby/265486.html

猜你在找的Ruby相关文章