fluffle 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fluffle/server.rb +10 -2
- data/lib/fluffle/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcbc65bf0e000660ff8f037e53c1b68c6b3d08a1
|
4
|
+
data.tar.gz: 3af6b92dc0b05eef86d93aeb486f1e6b7ce38a66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b92dd7c99a3f4f4e042c0c1eef05fa708f351e7274ad07cf777515d7e5eca2afab50e4f65ce5896f672501c8b0ca7a210939f631fc06c4f623526d576b7d0ee5
|
7
|
+
data.tar.gz: 96eb375a61005eacecbed4963da290ca32aa755e6215bf15f1f928781489cab284a6e1dab628d713a87b49105005574fcf20df80f0714c6541821f97cefadb6c
|
data/lib/fluffle/server.rb
CHANGED
@@ -22,6 +22,7 @@ module Fluffle
|
|
22
22
|
|
23
23
|
@handlers = {}
|
24
24
|
@handler_pool = Concurrent::FixedThreadPool.new concurrency
|
25
|
+
@consumers = []
|
25
26
|
|
26
27
|
self.class.default_server ||= self
|
27
28
|
end
|
@@ -66,7 +67,7 @@ module Fluffle
|
|
66
67
|
qualified_name = Fluffle.request_queue_name name
|
67
68
|
queue = @channel.queue qualified_name
|
68
69
|
|
69
|
-
queue.subscribe(manual_ack: true) do |delivery_info, properties, payload|
|
70
|
+
consumer = queue.subscribe(manual_ack: true) do |delivery_info, properties, payload|
|
70
71
|
@handler_pool.post do
|
71
72
|
begin
|
72
73
|
handle_request handler: handler,
|
@@ -80,6 +81,8 @@ module Fluffle
|
|
80
81
|
end
|
81
82
|
end
|
82
83
|
end
|
84
|
+
|
85
|
+
@consumers << consumer
|
83
86
|
end
|
84
87
|
|
85
88
|
self.wait_for_signal
|
@@ -111,8 +114,10 @@ module Fluffle
|
|
111
114
|
|
112
115
|
Fluffle.logger.info "Received #{signal}; shutting down..."
|
113
116
|
|
114
|
-
|
117
|
+
# First stop the consumers from receiving messages
|
118
|
+
@consumers.each &:cancel
|
115
119
|
|
120
|
+
# Then wait for worker pools to finish processing their active jobs
|
116
121
|
@handler_pool.shutdown
|
117
122
|
unless @handler_pool.wait_for_termination(@shutdown_timeout)
|
118
123
|
# `wait_for_termination` returns false if it didn't shut down in time,
|
@@ -120,6 +125,9 @@ module Fluffle
|
|
120
125
|
@handler_pool.kill
|
121
126
|
end
|
122
127
|
|
128
|
+
# Finally close the connection
|
129
|
+
@channel.close
|
130
|
+
|
123
131
|
return
|
124
132
|
end
|
125
133
|
end
|
data/lib/fluffle/version.rb
CHANGED