nsq-ruby 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +4 -1
- data/lib/nsq/connection.rb +6 -1
- data/lib/nsq/consumer.rb +3 -1
- data/lib/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6c931ee31ebc9745dba9e2084740d6022f97b0ef280d1661cc1391910481eee9
|
4
|
+
data.tar.gz: '0965ea14b66ebfa6d1ca429af3cab05f970418f5cd41241362619b1e19444a08'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67e99a8a1b6051325fd04e56bda7910eb41f46a39bf9baf9969bbfa8b04af5b9a6fc2297f707eb1ffdbb4a257a138112532639662a4e484ec47608ba93bdbcb9
|
7
|
+
data.tar.gz: bec66cc5f0990f97d55551b0b786ad0043c70d0dbe14e6b728726bbbdbd551caaac012adc5bf3d699113c3f11e9e9885ca579be41c9d7bcc205d7326f90d68ec
|
data/README.md
CHANGED
@@ -191,6 +191,7 @@ producers when you're done with them.
|
|
191
191
|
| `max_in_flight` | Max number of messages for this consumer to have in flight at a time | 1 |
|
192
192
|
| `discovery_interval` | Seconds between queue discovery via nsqlookupd | 60.0 |
|
193
193
|
| `msg_timeout` | Milliseconds before nsqd will timeout a message | 60000 |
|
194
|
+
| `max_attempts` | Number of times a message will be attempted before being finished | |
|
194
195
|
| `tls_v1` | Flag for tls v1 connections | false |
|
195
196
|
| `tls_options` | Optional keys and certificates for TLS connections | |
|
196
197
|
|
@@ -205,6 +206,7 @@ consumer = Nsq::Consumer.new(
|
|
205
206
|
max_in_flight: 100,
|
206
207
|
discovery_interval: 30,
|
207
208
|
msg_timeout: 120_000,
|
209
|
+
max_attempts: 10,
|
208
210
|
tls_v1: true,
|
209
211
|
tls_options: {
|
210
212
|
key: '/path/to/ssl/key.pem',
|
@@ -224,7 +226,8 @@ Notes:
|
|
224
226
|
but to make the implementation of `nsq-ruby` as simple as possible, the minimum
|
225
227
|
`max_in_flight` _per_ connection is 1. So if you set `max_in_flight` to 1 and
|
226
228
|
are connected to 3 nsqds, you may have up to 3 messages in flight at a time.
|
227
|
-
|
229
|
+
- `max_attempts` is optional and if not set messages will be attempted until they
|
230
|
+
are explicitly finshed.
|
228
231
|
|
229
232
|
### `#pop`
|
230
233
|
|
data/lib/nsq/connection.rb
CHANGED
@@ -32,6 +32,7 @@ module Nsq
|
|
32
32
|
@msg_timeout = opts[:msg_timeout] || 60_000 # 60s
|
33
33
|
@max_in_flight = opts[:max_in_flight] || 1
|
34
34
|
@tls_options = opts[:tls_options]
|
35
|
+
@max_attempts = opts[:max_attempts]
|
35
36
|
if opts[:ssl_context]
|
36
37
|
if @tls_options
|
37
38
|
warn 'ssl_context and tls_options both set. Using tls_options. Ignoring ssl_context.'
|
@@ -250,7 +251,11 @@ module Nsq
|
|
250
251
|
error "Error received: #{frame.data}"
|
251
252
|
elsif frame.is_a?(Message)
|
252
253
|
debug "<<< #{frame.body}"
|
253
|
-
@
|
254
|
+
if @max_attempts && frame.attempts > @max_attempts
|
255
|
+
fin(frame.id)
|
256
|
+
else
|
257
|
+
@queue.push(frame) if @queue
|
258
|
+
end
|
254
259
|
else
|
255
260
|
raise 'No data from socket'
|
256
261
|
end
|
data/lib/nsq/consumer.rb
CHANGED
@@ -17,6 +17,7 @@ module Nsq
|
|
17
17
|
@max_in_flight = opts[:max_in_flight] || 1
|
18
18
|
@discovery_interval = opts[:discovery_interval] || 60
|
19
19
|
@msg_timeout = opts[:msg_timeout]
|
20
|
+
@max_attempts = opts[:max_attempts]
|
20
21
|
@ssl_context = opts[:ssl_context]
|
21
22
|
@tls_options = opts[:tls_options]
|
22
23
|
@tls_v1 = opts[:tls_v1]
|
@@ -75,7 +76,8 @@ module Nsq
|
|
75
76
|
channel: @channel,
|
76
77
|
queue: @messages,
|
77
78
|
msg_timeout: @msg_timeout,
|
78
|
-
max_in_flight: 1
|
79
|
+
max_in_flight: 1,
|
80
|
+
max_attempts: @max_attempts
|
79
81
|
}.merge(options))
|
80
82
|
end
|
81
83
|
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nsq-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wistia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
111
|
rubyforge_project:
|
112
|
-
rubygems_version: 2.6
|
112
|
+
rubygems_version: 2.7.6
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Ruby client library for NSQ
|