module ActionSubscriber
Constants
- VERSION
Public Class Methods
after_server_start(&block)
click to toggle source
# File lib/action_subscriber.rb, line 90 def self.after_server_start(&block) ::ActiveSupport::Notifications.subscribe("action_subscriber:server_started") do |*args| block.call(*args) end end
after_server_stop(&block)
click to toggle source
# File lib/action_subscriber.rb, line 96 def self.after_server_stop(&block) ::ActiveSupport::Notifications.subscribe("action_subscriber:server_stopped") do |*args| block.call(*args) end end
configuration()
click to toggle source
# File lib/action_subscriber/preload.rb, line 16 def self.configuration @configuration ||= ::ActionSubscriber::Configuration.new end
Also aliased as: config
configure() { |configuration| ... }
click to toggle source
Public Class Methods
# File lib/action_subscriber.rb, line 39 def self.configure yield(configuration) if block_given? end
draw_routes(&block)
click to toggle source
# File lib/action_subscriber.rb, line 43 def self.draw_routes(&block) fail "No block provided to ActionSubscriber.draw_routes" unless block_given? # We need to delay the execution of this block because ActionSubscriber is # not configured at this point if we're calling from within the required app. @route_set = nil @draw_routes_block = block end
logger()
click to toggle source
Public Class Methods
# File lib/action_subscriber/preload.rb, line 12 def self.logger ::ActionSubscriber::Logging.logger end
print_deprecation_warning(specific_warning)
click to toggle source
# File lib/action_subscriber.rb, line 52 def self.print_deprecation_warning(specific_warning) logger.info ("#"*50) logger.info ("# DEPRECATION NOTICE ") logger.info ("# #{specific_warning}") logger.info ("# The usage of multiple connections and the :concurrency setting have been deprecated in favor of using threadpools") logger.info ("# Please see https://github.com/mxenabled/action_subscriber#connections-deprecated for details") logger.info ("# If this change is a problem for your usage of action_subscriber please let us know here: https://github.com/mxenabled/action_subscriber/issues/92") logger.info ("#"*50) end
print_subscriptions()
click to toggle source
# File lib/action_subscriber.rb, line 62 def self.print_subscriptions logger.info configuration.inspect route_set.print_subscriptions end
print_threadpool_stats()
click to toggle source
# File lib/action_subscriber.rb, line 67 def self.print_threadpool_stats route_set.print_threadpool_stats end
setup_default_threadpool!()
click to toggle source
# File lib/action_subscriber.rb, line 71 def self.setup_default_threadpool! ::ActionSubscriber::ThreadPools.setup_threadpool(:default, {}) end
setup_subscriptions!()
click to toggle source
# File lib/action_subscriber.rb, line 75 def self.setup_subscriptions! route_set.setup_subscriptions! end
start_subscribers!()
click to toggle source
# File lib/action_subscriber.rb, line 79 def self.start_subscribers! route_set.start_subscribers! end
stop_subscribers!(timeout = nil)
click to toggle source
# File lib/action_subscriber.rb, line 83 def self.stop_subscribers!(timeout = nil) timeout ||= ::ActionSubscriber.configuration.seconds_to_wait_for_graceful_shutdown route_set.cancel_consumers! logger.info "waiting for threadpools to empty (maximum wait of #{timeout}sec)" route_set.wait_to_finish_with_timeout(timeout) end
Private Class Methods
route_set()
click to toggle source
Private Implementation
# File lib/action_subscriber.rb, line 109 def self.route_set @route_set ||= begin fail "cannot start because no routes have been defined. Please make sure that you call ActionSubscriber.draw_routes when your application loads" unless @draw_routes_block routes = Router.draw_routes(&@draw_routes_block) RouteSet.new(routes) end end