fluffle 0.7.2 → 0.8.0
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 +4 -4
- data/lib/fluffle/server.rb +15 -6
- data/lib/fluffle/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cf75bb5ed2a3dff720158c35fb96a604d27b14c
|
4
|
+
data.tar.gz: d0959935b67006ae17727560cab6bd745aa292d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4766339642a4e16397d855a640e3f8f07f702b17c9dea8dc6fcac70860840d35da1ff9caaceebdba46e45c8c96fdf7513c185bd64fe89b7992b25b110d452dd
|
7
|
+
data.tar.gz: 99c94b1f4a2fb4cb4b902fcf7c92186ddddc1e5533c1dfc140fdb643406b5bd045a5acf2d23d2129870f91a0418d97af1101ef0bd3b0d839bb94f37ad9c40f56
|
data/lib/fluffle/server.rb
CHANGED
@@ -6,7 +6,7 @@ module Fluffle
|
|
6
6
|
include Connectable
|
7
7
|
|
8
8
|
attr_reader :confirms, :connection, :handlers, :handler_pool, :mandatory
|
9
|
-
attr_accessor :publish_timeout
|
9
|
+
attr_accessor :publish_timeout, :shutdown_timeout
|
10
10
|
|
11
11
|
# url: - Optional URL to pass to `Bunny.new` to immediately connect
|
12
12
|
# concurrency: - Number of threads to handle messages on (default: 1)
|
@@ -15,9 +15,10 @@ module Fluffle
|
|
15
15
|
url_or_connection = url || connection
|
16
16
|
self.connect(url_or_connection) if url_or_connection
|
17
17
|
|
18
|
-
@confirms
|
19
|
-
@mandatory
|
20
|
-
@publish_timeout
|
18
|
+
@confirms = confirms
|
19
|
+
@mandatory = mandatory
|
20
|
+
@publish_timeout = 5
|
21
|
+
@shutdown_timeout = 15
|
21
22
|
|
22
23
|
@handlers = {}
|
23
24
|
@handler_pool = Concurrent::FixedThreadPool.new concurrency
|
@@ -68,14 +69,14 @@ module Fluffle
|
|
68
69
|
queue.subscribe(manual_ack: true) do |delivery_info, properties, payload|
|
69
70
|
@handler_pool.post do
|
70
71
|
begin
|
71
|
-
@channel.ack delivery_info.delivery_tag
|
72
|
-
|
73
72
|
handle_request handler: handler,
|
74
73
|
properties: properties,
|
75
74
|
payload: payload
|
76
75
|
rescue => err
|
77
76
|
# Ensure we don't loose any errors on the handler pool's thread
|
78
77
|
Fluffle.logger.error "[Fluffle::Server] #{err.class}: #{err.message}\n#{err.backtrace.join("\n")}"
|
78
|
+
ensure
|
79
|
+
@channel.ack delivery_info.delivery_tag
|
79
80
|
end
|
80
81
|
end
|
81
82
|
end
|
@@ -109,8 +110,16 @@ module Fluffle
|
|
109
110
|
signal = readables.first.gets.strip
|
110
111
|
|
111
112
|
Fluffle.logger.info "Received #{signal}; shutting down..."
|
113
|
+
|
112
114
|
@channel.work_pool.shutdown
|
113
115
|
|
116
|
+
@handler_pool.shutdown
|
117
|
+
unless @handler_pool.wait_for_termination(@shutdown_timeout)
|
118
|
+
# `wait_for_termination` returns false if it didn't shut down in time,
|
119
|
+
# so we need to kill it
|
120
|
+
@handler_pool.kill
|
121
|
+
end
|
122
|
+
|
114
123
|
return
|
115
124
|
end
|
116
125
|
end
|
data/lib/fluffle/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluffle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dirk Gadsden
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|