fluffle 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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