Chr*_*mer 7 ruby-on-rails sidekiq actioncable
我在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
Run Code Online (Sandbox Code Playgroud)
这是我的工人:
class AdminWorker
include Sidekiq::Worker
def perform
ActionCable.server.broadcast 'admin_channel', content: 'hello'
end
end
Run Code Online (Sandbox Code Playgroud)
我的管理频道:
class AdminChannel < ApplicationCable::Channel
def subscribed
stream_from "admin_channel"
end
def unsubscribed
# Any cleanup needed when channel is unsubscribed
end
end
Run Code Online (Sandbox Code Playgroud)
正如我之前提到的,调用AdminWorker.new.perform时,这很好用.一旦我尝试运行AdminWorker.perform_async,电缆就不会广播,对日志中的动作电缆没有任何帮助.我在这里错过了什么?
小智 18
我有同样的问题.看到这个答案:来自控制台的ActionCable.server.broadcast - 为我工作.基本上只是改变了cable.yml
development:
adapter: async
Run Code Online (Sandbox Code Playgroud)
至
development:
adapter: redis
url: redis://localhost:6379/1
Run Code Online (Sandbox Code Playgroud)
我能够从控制台,模型,Sidekiq工人班等广播.
| 归档时间: |
|
| 查看次数: |
3367 次 |
| 最近记录: |