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/threadpool.rb,
lib/action_subscriber/subscribable.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
Classes: Base, Configuration, Railtie, Route, RouteSet, Router, Threadpool, URI
Constant Summary
collapse
- VERSION =
"3.0.1"
Class Method Summary
collapse
Class Method Details
.auto_pop! ⇒ Object
Loop over all subscribers and pull messages if there are any waiting in the queue for us.
42
43
44
45
|
# File 'lib/action_subscriber.rb', line 42
def self.auto_pop!
return if ::ActionSubscriber::Threadpool.busy?
route_set.auto_pop!
end
|
.auto_subscribe! ⇒ Object
Loop over all subscribers and register each as a subscriber.
50
51
52
|
# File 'lib/action_subscriber.rb', line 50
def self.auto_subscribe!
route_set.auto_subscribe!
end
|
.configuration ⇒ Object
Also known as:
config
16
17
18
|
# File 'lib/action_subscriber/preload.rb', line 16
def self.configuration
@configuration ||= ::ActionSubscriber::Configuration.new
end
|
54
55
56
|
# File 'lib/action_subscriber.rb', line 54
def self.configure
yield(configuration) if block_given?
end
|
.draw_routes(&block) ⇒ Object
58
59
60
61
62
63
64
65
|
# File 'lib/action_subscriber.rb', line 58
def self.draw_routes(&block)
fail "No block provided to ActionSubscriber.draw_routes" unless block_given?
@route_set = nil
@draw_routes_block = block
end
|
.logger ⇒ Object
12
13
14
|
# File 'lib/action_subscriber/preload.rb', line 12
def self.logger
::ActionSubscriber::Logging.logger
end
|
.print_subscriptions ⇒ Object
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/action_subscriber.rb', line 67
def self.print_subscriptions
logger.info configuration.inspect
route_set.routes.group_by(&:subscriber).each do |subscriber, routes|
logger.info subscriber.name
routes.each do |route|
logger.info " -- method: #{route.action}"
logger.info " -- exchange: #{route.exchange}"
logger.info " -- queue: #{route.queue}"
logger.info " -- routing_key: #{route.routing_key}"
logger.info " -- threadpool: #{route.threadpool.name}, pool_size: #{route.threadpool.pool_size}"
end
end
end
|
.setup_default_connection! ⇒ Object
81
82
83
|
# File 'lib/action_subscriber.rb', line 81
def self.setup_default_connection!
::ActionSubscriber::RabbitConnection.setup_connection(:default, {})
end
|
.setup_subscriptions! ⇒ Object
85
86
87
|
# File 'lib/action_subscriber.rb', line 85
def self.setup_subscriptions!
route_set.setup_subscriptions!
end
|
.start_queues ⇒ Object
89
90
91
92
|
# File 'lib/action_subscriber.rb', line 89
def self.start_queues
setup_subscriptions!
print_subscriptions
end
|
.start_subscribers ⇒ Object
94
95
96
97
98
|
# File 'lib/action_subscriber.rb', line 94
def self.start_subscribers
setup_subscriptions!
auto_subscribe!
print_subscriptions
end
|
.stop_subscribers! ⇒ Object
100
101
102
|
# File 'lib/action_subscriber.rb', line 100
def self.stop_subscribers!
route_set.cancel_consumers!
end
|