Skip to content

Producer push method to return an executing Promise#10

Open
jamescway wants to merge 77 commits intostancampbell3:masterfrom
buoyant-data:execute_promise
Open

Producer push method to return an executing Promise#10
jamescway wants to merge 77 commits intostancampbell3:masterfrom
buoyant-data:execute_promise

Conversation

@jamescway
Copy link
Copy Markdown

Changed the Promise creation to have it immediately start executing the code block. The returned promise is executing.

p = Hermann::Producer.new('test', '0:9092')
promise = p.push("test123")  #promise is executing
sleep 2

Stan Campbell and others added 30 commits July 30, 2014 21:58
This change:

 - removes the platform specific binding (Ruby will run extconf.rb on platforms)
 - adds myself to the authors
 - Pulls version from the gem itself
 - includes all the files in lib that are added to the git tree
This is a little bit better and cleaner IMO than the hand-crafted rake tasks.

Would you like to know more? <https://github.com/luislavena/rake-compiler>
Some are intentionally left out of the fixing because I believe there's a
failing test case that needs to be added
R. Tyler Croy and others added 30 commits September 9, 2014 10:47
…-configured broker/topic

This will make it a bit easier to run local tests in a more automated fashion
against some non-public broker hostnames
…he rd_kafka_poll calls

This also introduces some more/better error handling in Hermann::Lib::Producer#tick

Fixes #24
…fely block for a value

This adds a requirement for 1.8.7 clients to install the SystemTimer gem for
timing out on Hermann::Result#value(timeout) to block and timeout correctly

Fixes #25
… change Producer data

This will help with determining whether we're no longer connected due to
failures after a push of a message
Add lots more machinery to help identify errors outside of a `push` command
Provided that Producer#tick_reactor has been invoked, if there are underlying
errors like "1/1 Brokers down" then this code will ensure that outstanding
Herman::Result children of Herman::Producer will have their error status updated.

Fixes #25
Just a quick reproduction case for #32
Propagate systemic errors from librdkafka up into Herman::Result objects
Avoid call to rb_string_value_cstr() which doesn't handle binary strings properly
This reduces the need for the librdkafka system dependency and results in
statically linking librdkafka.a against the C extension.

There's a few hacks in extconf.rb specifically to deal with librdkafka's build
system, as well as apply checksumming to the downloaded file

Fixes #8
Bundle librdkafka 0.8.4 with the gem
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants