【发布时间】:2017-07-11 16:15:29
【问题描述】:
我在 docker 环境中使用 Rails 5,我可以使用 worker.new.perform 让 Action Cable 在 Sidekiq 工作人员上完美播放。
但对于我来说,在使用 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,电缆将不会广播,并且对于日志中的操作电缆没有任何帮助。我在这里错过了什么?
【问题讨论】:
-
我也面临同样的问题。你找到解决办法了吗?
标签: ruby-on-rails sidekiq actioncable