我在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,电缆将不会广播,日志中也没有关于Action Cable方面有用的信息。我在这里漏掉了什么?