bps-kafka 0.1.2 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bps/publisher/kafka.rb +3 -1
- data/lib/bps/publisher/kafka_async.rb +3 -3
- data/spec/bps/kafka_spec.rb +12 -11
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87d68617ad58c810d307efe2f1142306a502eea59098070fa70d1b40a13f49f3
|
4
|
+
data.tar.gz: f3d4e4de9ed30b41b8d546c7ef885498c265104ac3ded18dc40cd1e0f45278aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07bc1b7e4b2c9779489e95375a15cb84015514d25322d8dde2ac5c1a2461f0eb427ae8f53c1cb3695b03ef16fa1f592c51d77b922bc7104f8a785f36ecfa431d
|
7
|
+
data.tar.gz: 2b8e3aa881a745f9f9b240b27d890acd1948733080664ddabd25030bffdc4a9b25e0841a8e817be72b48c7168579c9fe0cd42f08fb81e70902e6655ea7ea862b
|
data/lib/bps/publisher/kafka.rb
CHANGED
@@ -93,6 +93,8 @@ module BPS
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def close
|
96
|
+
super
|
97
|
+
|
96
98
|
@producer.shutdown
|
97
99
|
@client.close
|
98
100
|
end
|
@@ -102,7 +104,7 @@ module BPS
|
|
102
104
|
def parse_url(url)
|
103
105
|
port = url.port&.to_s || '9092'
|
104
106
|
CGI.unescape(url.host).split(',').map do |addr|
|
105
|
-
addr << ':' << port unless
|
107
|
+
addr << ':' << port unless /:\d+$/.match?(addr)
|
106
108
|
addr
|
107
109
|
end
|
108
110
|
end
|
@@ -14,10 +14,10 @@ module BPS
|
|
14
14
|
# @param [Hash] opts the options.
|
15
15
|
# @option opts [Integer] :max_queue_size (defaults to: 1000)
|
16
16
|
# the maximum number of messages allowed in the queue.
|
17
|
-
# @option opts [Integer] :delivery_threshold (defaults to:
|
17
|
+
# @option opts [Integer] :delivery_threshold (defaults to: 1000)
|
18
18
|
# if greater than zero, the number of buffered messages that will automatically
|
19
19
|
# trigger a delivery.
|
20
|
-
# @option opts [Integer] :delivery_interval (defaults to:
|
20
|
+
# @option opts [Integer] :delivery_interval (defaults to: 30) if greater than zero, the number of
|
21
21
|
# seconds between automatic message deliveries.
|
22
22
|
def initialize(broker_addrs, **opts) # rubocop:disable Lint/UselessMethodDefinition
|
23
23
|
super
|
@@ -25,7 +25,7 @@ module BPS
|
|
25
25
|
|
26
26
|
private
|
27
27
|
|
28
|
-
def init_producer(max_queue_size: 1000, delivery_threshold:
|
28
|
+
def init_producer(max_queue_size: 1000, delivery_threshold: 1000, delivery_interval: 30)
|
29
29
|
@client.async_producer(
|
30
30
|
max_queue_size: max_queue_size,
|
31
31
|
delivery_threshold: delivery_threshold,
|
data/spec/bps/kafka_spec.rb
CHANGED
@@ -2,33 +2,34 @@ require 'spec_helper'
|
|
2
2
|
require 'bps/kafka'
|
3
3
|
|
4
4
|
RSpec.describe 'Kafka', kafka: true do
|
5
|
-
context '
|
6
|
-
let(:client) {
|
5
|
+
context 'with addr resolving' do
|
6
|
+
let(:client) { instance_double(::Kafka::Client, producer: nil) }
|
7
|
+
|
7
8
|
before { allow(::Kafka).to receive(:new).and_return(client) }
|
8
9
|
|
9
|
-
it '
|
10
|
+
it 'resolves simple URLs' do
|
10
11
|
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7')
|
11
|
-
|
12
|
+
allow(::Kafka).to receive(:new).with(['test.host:9092'], {}).and_return(client)
|
12
13
|
else
|
13
|
-
|
14
|
+
allow(::Kafka).to receive(:new).with(['test.host:9092']).and_return(client)
|
14
15
|
end
|
15
16
|
BPS::Publisher.resolve(URI.parse('kafka+sync://test.host:9092'))
|
16
17
|
end
|
17
18
|
|
18
|
-
it '
|
19
|
+
it 'resolves URLs with multiple hosts' do
|
19
20
|
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7')
|
20
|
-
|
21
|
+
allow(::Kafka).to receive(:new).with(['foo.host:9092', 'bar.host:9092'], {}).and_return(client)
|
21
22
|
else
|
22
|
-
|
23
|
+
allow(::Kafka).to receive(:new).with(['foo.host:9092', 'bar.host:9092']).and_return(client)
|
23
24
|
end
|
24
25
|
BPS::Publisher.resolve(URI.parse('kafka+sync://foo.host,bar.host:9092'))
|
25
26
|
end
|
26
27
|
|
27
|
-
it '
|
28
|
+
it 'resolves URLs with multiple hosts/ports' do
|
28
29
|
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7')
|
29
|
-
|
30
|
+
allow(::Kafka).to receive(:new).with(['foo.host:9093', 'bar.host:9092'], {}).and_return(client)
|
30
31
|
else
|
31
|
-
|
32
|
+
allow(::Kafka).to receive(:new).with(['foo.host:9093', 'bar.host:9092']).and_return(client)
|
32
33
|
end
|
33
34
|
BPS::Publisher.resolve(URI.parse('kafka+sync://foo.host%3A9093,bar.host'))
|
34
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bps-kafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Black Square Media
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bps
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.2.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.2.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ruby-kafka
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
requirements: []
|
72
|
-
rubygems_version: 3.
|
72
|
+
rubygems_version: 3.2.15
|
73
73
|
signing_key:
|
74
74
|
specification_version: 4
|
75
75
|
summary: Kafka adapter for bps
|