jruby-kafka 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jruby-kafka/consumer.rb +15 -7
- data/lib/jruby-kafka/group.rb +14 -2
- 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: 8b35dfb83e50e1362ee256245f71ca6cb6a1f8f6
|
4
|
+
data.tar.gz: b3150ea89bf69749f87b5a20734101126ddaf3b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c2a6ef16503adb6afe836526c8b052ec3ab6c8fa1e0956d65c622ab314d350b5316c94ea46ad642d657c774e77aef76d4ae9ee40ae057db9f9b5bff75d412df
|
7
|
+
data.tar.gz: 083ccc699375cfc9aba9acfa4ca618954a4b50a5e8ca3d4fb8255fa47105d1ada2571c37c38b51009c21fe627a32df133f79c2664dd4f1140e4ecac72102f692
|
data/lib/jruby-kafka/consumer.rb
CHANGED
@@ -14,24 +14,32 @@ class Kafka::Consumer
|
|
14
14
|
@m_threadNumber
|
15
15
|
@m_queue
|
16
16
|
|
17
|
-
def initialize(a_stream, a_threadNumber, a_queue)
|
17
|
+
def initialize(a_stream, a_threadNumber, a_queue, a_bool_restart_on_exception, a_sleep_ms)
|
18
18
|
@m_threadNumber = a_threadNumber
|
19
19
|
@m_stream = a_stream
|
20
20
|
@m_queue = a_queue
|
21
|
+
@m_restart_on_exception = a_bool_restart_on_exception
|
22
|
+
@m_sleep_ms = 1.0 / 1000.0 * Float(a_sleep_ms)
|
21
23
|
end
|
22
24
|
|
23
25
|
def run
|
24
26
|
it = @m_stream.iterator()
|
25
|
-
|
26
|
-
|
27
|
+
begin
|
28
|
+
while it.hasNext()
|
27
29
|
begin
|
28
30
|
@m_queue << it.next().message()
|
29
|
-
rescue ConsumerRebalanceFailedException => e
|
30
|
-
raise KafkaError.new(e), "Got ConsumerRebalanceFailedException: #{e}"
|
31
|
-
rescue ConsumerTimeoutException => e
|
32
|
-
raise KafkaError.new(e), "Got ConsumerTimeoutException: #{e}"
|
33
31
|
end
|
34
32
|
end
|
33
|
+
rescue Exception => e
|
34
|
+
puts("#{self.class.name} caught exception: #{e.class.name}")
|
35
|
+
puts(e.message) if e.message != ''
|
36
|
+
puts(e.backtrace)
|
37
|
+
if @m_restart_on_exception
|
38
|
+
sleep(@m_sleep_ms)
|
39
|
+
retry
|
40
|
+
else
|
41
|
+
raise e
|
42
|
+
end
|
35
43
|
end
|
36
44
|
end
|
37
45
|
end
|
data/lib/jruby-kafka/group.rb
CHANGED
@@ -28,7 +28,8 @@ class Kafka::Group
|
|
28
28
|
# :topic_id => "topic" - REQUIRED: The topic id to consume on.
|
29
29
|
# :reset_beginning => "from-beginning" - (optional) If the consumer does not already have an established offset
|
30
30
|
# to consume from, start with the earliest message present in the log rather than the latest message.
|
31
|
-
#
|
31
|
+
# :consumer_restart_on_error => "true" - (optional) Controls if consumer threads are to restart on caught exceptions.
|
32
|
+
# exceptions are logged.
|
32
33
|
def initialize(options={})
|
33
34
|
validate_required_arguments(options)
|
34
35
|
|
@@ -52,6 +53,8 @@ class Kafka::Group
|
|
52
53
|
@fetch_wait_max_ms = '100'
|
53
54
|
@refresh_leader_backoff_ms = '200'
|
54
55
|
@consumer_timeout_ms = '-1'
|
56
|
+
@consumer_restart_on_error = "#{true}"
|
57
|
+
@consumer_restart_sleep_ms = '2000'
|
55
58
|
|
56
59
|
if options[:zk_connect_timeout]
|
57
60
|
@zk_connect_timeout = options[:zk_connect_timeout]
|
@@ -110,6 +113,15 @@ class Kafka::Group
|
|
110
113
|
@consumer_timeout_ms = options[:consumer_timeout_ms]
|
111
114
|
end
|
112
115
|
|
116
|
+
if options[:consumer_restart_on_error]
|
117
|
+
@consumer_restart_on_error = options[:consumer_restart_on_error]
|
118
|
+
end
|
119
|
+
|
120
|
+
if options[:consumer_restart_sleep_ms]
|
121
|
+
@consumer_restart_sleep_ms = options[:consumer_restart_sleep_ms]
|
122
|
+
end
|
123
|
+
|
124
|
+
|
113
125
|
if options[:reset_beginning]
|
114
126
|
if options[:reset_beginning] == 'from-beginning'
|
115
127
|
@auto_offset_reset = 'smallest'
|
@@ -159,7 +171,7 @@ class Kafka::Group
|
|
159
171
|
|
160
172
|
threadNumber = 0
|
161
173
|
for stream in streams
|
162
|
-
@executor_submit.call(Kafka::Consumer.new(stream, threadNumber, a_queue))
|
174
|
+
@executor_submit.call(Kafka::Consumer.new(stream, threadNumber, a_queue, @consumer_restart_on_error, @consumer_restart_sleep_ms))
|
163
175
|
threadNumber += 1
|
164
176
|
end
|
165
177
|
@running = true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jruby-kafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Lawson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: this is primarily to be used as an interface for logstash
|
14
14
|
email:
|