每次请求时自动重新加载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|
。