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
config()
Alias for: configuration
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
print_subscriptions() click to toggle source
print_threadpool_stats() click to toggle source
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