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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e799f809c895d2024ad5a290a8e2e9e11c163954
4
- data.tar.gz: 19da9219fdcd5f4ae4d51cb28e8fc078a205ab01
3
+ metadata.gz: fcbc65bf0e000660ff8f037e53c1b68c6b3d08a1
4
+ data.tar.gz: 3af6b92dc0b05eef86d93aeb486f1e6b7ce38a66
5
5
  SHA512:
6
- metadata.gz: 6439aa9ac01843f9274a8474aa1b3ac826df315ed5c7de137ca29c3dc73ccb3f7d7a3473abd125a3b1fd75e89f149f09333cc71050bb5e2a72f4888fb6775813
7
- data.tar.gz: fa768fc5767527d2b5e39c17b11957830e92f0261fec6845a453a1f67d10444d874eda817a5f81a2bb4e37c69626727743efcd219ea96df3566aa0ca2d1d36af
6
+ metadata.gz: b92dd7c99a3f4f4e042c0c1eef05fa708f351e7274ad07cf777515d7e5eca2afab50e4f65ce5896f672501c8b0ca7a210939f631fc06c4f623526d576b7d0ee5
7
+ data.tar.gz: 96eb375a61005eacecbed4963da290ca32aa755e6215bf15f1f928781489cab284a6e1dab628d713a87b49105005574fcf20df80f0714c6541821f97cefadb6c
@@ -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
- @channel.close
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
@@ -1,3 +1,3 @@
1
1
  module Fluffle
2
- VERSION = '0.9.0'
2
+ VERSION = '0.9.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluffle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dirk Gadsden