gpt4 book ai didi

ruby-on-rails - 让 Action Cable 在 Sidekiq Job 中广播

转载 作者:行者123 更新时间:2023-12-04 05:11:45 25 4
gpt4 key购买 nike

我在 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

这是我的 worker :
class AdminWorker
include Sidekiq::Worker

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

我的管理 channel :
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 工作类等进行广播。

关于ruby-on-rails - 让 Action Cable 在 Sidekiq Job 中广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42377514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com