Module: ActionSubscriber
- Defined in:
- lib/action_subscriber.rb,
lib/action_subscriber/dsl.rb,
lib/action_subscriber/uri.rb,
lib/action_subscriber/base.rb,
lib/action_subscriber/babou.rb,
lib/action_subscriber/route.rb,
lib/action_subscriber/rspec.rb,
lib/action_subscriber/router.rb,
lib/action_subscriber/logging.rb,
lib/action_subscriber/preload.rb,
lib/action_subscriber/railtie.rb,
lib/action_subscriber/version.rb,
lib/action_subscriber/route_set.rb,
lib/action_subscriber/middleware.rb,
lib/action_subscriber/subscriber.rb,
lib/action_subscriber/subscribable.rb,
lib/action_subscriber/thread_pools.rb,
lib/action_subscriber/configuration.rb,
lib/action_subscriber/message_retry.rb,
lib/action_subscriber/middleware/env.rb,
lib/action_subscriber/default_routing.rb,
lib/action_subscriber/bunny/subscriber.rb,
lib/action_subscriber/middleware/router.rb,
lib/action_subscriber/middleware/runner.rb,
lib/action_subscriber/rabbit_connection.rb,
lib/action_subscriber/middleware/decoder.rb,
lib/action_subscriber/march_hare/subscriber.rb,
lib/action_subscriber/middleware/error_handler.rb,
lib/action_subscriber/middleware/active_record/query_cache.rb,
lib/action_subscriber/middleware/active_record/connection_management.rb
Defined Under Namespace
Modules: Babou, Bunny, DSL, DefaultRouting, Logging, MarchHare, MessageRetry, Middleware, RSpec, RabbitConnection, Subscribable, Subscriber, ThreadPools
Classes: Base, Configuration, Railtie, Route, RouteSet, Router, URI
Constant Summary
collapse
- VERSION =
"5.3.1.pre"
Class Method Summary
collapse
Class Method Details
.after_server_start(&block) ⇒ Object
90
91
92
93
94
|
# 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) ⇒ Object
96
97
98
99
100
|
# 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 ⇒ Object
Also known as:
config
39
40
41
|
# File 'lib/action_subscriber.rb', line 39
def self.configure
yield(configuration) if block_given?
end
|
.draw_routes(&block) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/action_subscriber.rb', line 43
def self.draw_routes(&block)
fail "No block provided to ActionSubscriber.draw_routes" unless block_given?
@route_set = nil
@draw_routes_block = block
end
|
.print_deprecation_warning(specific_warning) ⇒ Object
52
53
54
55
56
57
58
59
60
|
# 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 ⇒ Object
62
63
64
65
|
# File 'lib/action_subscriber.rb', line 62
def self.print_subscriptions
logger.info configuration.inspect
route_set.print_subscriptions
end
|
.print_threadpool_stats ⇒ Object
67
68
69
|
# File 'lib/action_subscriber.rb', line 67
def self.print_threadpool_stats
route_set.print_threadpool_stats
end
|
.setup_default_threadpool! ⇒ Object
.setup_subscriptions! ⇒ Object
75
76
77
|
# File 'lib/action_subscriber.rb', line 75
def self.setup_subscriptions!
route_set.setup_subscriptions!
end
|
.start_subscribers! ⇒ Object
79
80
81
|
# File 'lib/action_subscriber.rb', line 79
def self.start_subscribers!
route_set.start_subscribers!
end
|
.stop_subscribers!(timeout = nil) ⇒ Object
83
84
85
86
87
88
|
# 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
|