rdkafka 0.1.6 → 0.1.7
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/ext/Rakefile +1 -1
- data/lib/rdkafka/ffi.rb +6 -1
- data/lib/rdkafka/producer.rb +12 -2
- data/lib/rdkafka/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: 05e07e0a842a9c43a3f146ab17b7c9a6a5199695
|
4
|
+
data.tar.gz: aaf3de6b32ee405e4b3154931fa8faa997c1f6ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99c48f6357f58933fbe4d7473b6331b3b02e7e902d24edf3d7361e6c12ce647d9c6055c1882c7eb4a481dab713680f0b09bd3922c5a265c9e032c36dda80cd8f
|
7
|
+
data.tar.gz: d62fbdb64afb51f3027f7764b29ddc3c7857fe5c771a4c49bc799cfacaf67b662de568e20ee3f3706068062f712e6aed2b3ac58e0f1e009357fb67c7ae965a9d
|
data/ext/Rakefile
CHANGED
@@ -18,7 +18,7 @@ task :default => :clean do
|
|
18
18
|
end
|
19
19
|
lib_path = File.join(File.dirname(__FILE__), "ports/#{recipe.host}/librdkafka/#{Rdkafka::LIBRDKAFKA_VERSION}/lib/librdkafka.#{from_extension}")
|
20
20
|
FileUtils.mv(lib_path, File.join(File.dirname(__FILE__), "librdkafka.#{to_extension}"))
|
21
|
-
# Cleanup files created miniportile we don't need in the gem
|
21
|
+
# Cleanup files created by miniportile we don't need in the gem
|
22
22
|
FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp")
|
23
23
|
FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports")
|
24
24
|
end
|
data/lib/rdkafka/ffi.rb
CHANGED
@@ -35,6 +35,10 @@ module Rdkafka
|
|
35
35
|
self[:err]
|
36
36
|
end
|
37
37
|
|
38
|
+
def topic
|
39
|
+
FFI.rd_kafka_topic_name(self[:rkt])
|
40
|
+
end
|
41
|
+
|
38
42
|
def partition
|
39
43
|
self[:partition]
|
40
44
|
end
|
@@ -60,7 +64,7 @@ module Rdkafka
|
|
60
64
|
end
|
61
65
|
|
62
66
|
def to_s
|
63
|
-
"Message with key '#{key}', payload '#{payload}', partition '#{partition}', offset '#{offset}'"
|
67
|
+
"Message in '#{topic}' with key '#{key}', payload '#{payload}', partition '#{partition}', offset '#{offset}'"
|
64
68
|
end
|
65
69
|
|
66
70
|
def self.release(ptr)
|
@@ -69,6 +73,7 @@ module Rdkafka
|
|
69
73
|
end
|
70
74
|
|
71
75
|
attach_function :rd_kafka_message_destroy, [:pointer], :void
|
76
|
+
attach_function :rd_kafka_topic_name, [:pointer], :string
|
72
77
|
|
73
78
|
# TopicPartition ad TopicPartitionList structs
|
74
79
|
|
data/lib/rdkafka/producer.rb
CHANGED
@@ -62,6 +62,8 @@ module Rdkafka
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
+
class WaitTimeoutError < RuntimeError; end
|
66
|
+
|
65
67
|
class DeliveryHandle < ::FFI::Struct
|
66
68
|
layout :pending, :bool,
|
67
69
|
:response, :int,
|
@@ -73,10 +75,18 @@ module Rdkafka
|
|
73
75
|
end
|
74
76
|
|
75
77
|
# Wait for the delivery report
|
76
|
-
def wait
|
78
|
+
def wait(timeout_in_seconds=10)
|
79
|
+
timeout = if timeout_in_seconds
|
80
|
+
Time.now.to_i + timeout_in_seconds
|
81
|
+
else
|
82
|
+
nil
|
83
|
+
end
|
77
84
|
loop do
|
78
85
|
if pending?
|
79
|
-
|
86
|
+
if timeout && timeout <= Time.now.to_i
|
87
|
+
raise WaitTimeoutError.new("Waiting for delivery timed out after #{timeout_in_seconds} seconds")
|
88
|
+
end
|
89
|
+
sleep 0.1
|
80
90
|
next
|
81
91
|
elsif self[:response] != 0
|
82
92
|
raise RdkafkaError.new(self[:response])
|
data/lib/rdkafka/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdkafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thijs Cadier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|