每次请求时自动重新加载wisper听众

我在app / listeners目录中有很好的监听器。

我也有/config/initializers/wisper.rb

module Wisper def self.setup configure do |config| config.broadcaster(:default, Broadcasters::LoggerBroadcaster.new(Rails.logger, Broadcasters::SendBroadcaster.new)) end end end Wisper.setup Wisper.subscribe(ProjectListener.new) Wisper.subscribe(FeedListener.new) 

我可以以某种方式强制Rails在每次请求时重新加载监听器吗?

您可以尝试将订阅包装在to_prepare块中,例如:

 Rails.application.config.to_prepare do Wisper.clear if Rails.env.development? Wisper.subscribe(ProjectListener.new) Wisper.subscribe(FeedListener.new) end 

to_prepare在生产中和开发环境中的每个请求之前调用一次。

如果您订阅了多个初始化程序,则可以将Wisper.clear放在名为“01_clear_subscribers”的初始化程序中,以确保只清除一次订阅者。

顺便说一句,你不需要覆盖setup来配置广播公司,只需要做Wisper.configure do |config|