kafka-retryable 0.1.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -12
- data/lib/kafka/retryable/{handle_failure.rb → failure_handler.rb} +2 -2
- data/lib/kafka/retryable/version.rb +1 -1
- data/lib/kafka/retryable.rb +1 -1
- data/lib/kafka-retryable.rb +8 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fe0f20e79da2c5c92ab43d4d0c58633730f4e5a
|
4
|
+
data.tar.gz: 6ea6de4581533360cf72bfd42e2976e325fbaaf9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c13764643e041e48845aa53726c5bd6339e5d9d5c988845f9e1a8c083f5ec9ad2740a6d8557a0a470f2b82ff76e0a8c3f3bb0a55b83f03c4deaca11a1d5c6db9
|
7
|
+
data.tar.gz: 8736213bedd2f72acc2bfd3d5c8f8db411f0f2d42674af6622430ad13d2c761eaeb8bb85f11d7e5b878f89cb9ab8b771b0457060e4acaa87917262e996713d83
|
data/README.md
CHANGED
@@ -37,19 +37,19 @@ These are the available configurations:
|
|
37
37
|
| Option | Value type | Description | Default |
|
38
38
|
|-------------------------------|---------------|----------------------------------|---------|
|
39
39
|
| failure_handling.enabled | Boolean | Set if buffering failed messages to a topic in Kafka is enabled | true |
|
40
|
-
| buffer.kafka.
|
40
|
+
| buffer.kafka.seed_brokers | Array | Kafka broker URL. Example: kafka://127.0.0.1:9092 or kafka+ssl://127.0.0.1:909 | nil |
|
41
41
|
|
42
42
|
|
43
43
|
2. Start with declaring configuration parameters for your class using the following syntax:
|
44
44
|
|
45
45
|
```
|
46
46
|
Class KafkaConsumer
|
47
|
-
include Kafka::Retryable::
|
47
|
+
include Kafka::Retryable::FailureHandler
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
configure_handler buffer: :kafka,
|
50
|
+
dead_letter_queue: :topic_t1,
|
51
|
+
exception_blacklist: [Karafka::InvalidMessageError],
|
52
|
+
after_failure: ->(error, message) { Bugsnag.notify("#{error}-#{message}") }
|
53
53
|
|
54
54
|
def consume
|
55
55
|
# Message consumption logic goes here
|
@@ -57,7 +57,7 @@ Class KafkaConsumer
|
|
57
57
|
end
|
58
58
|
```
|
59
59
|
|
60
|
-
- `dead_letter_queue`: Topic where the consumer
|
60
|
+
- `dead_letter_queue`: Topic where the consumer should enqueue the failure message.
|
61
61
|
- `exception_blacklist`: List of exception classes for which the error handling logic does not apply
|
62
62
|
- `exception_whitelist`: List of exception classes for which the error handling logic should apply
|
63
63
|
- `after_failure`: Accepts a proc that is executed after failure handling is completed
|
@@ -76,12 +76,12 @@ Overall, this is how Kafka Consumers using `kafka-retryable` will look like:
|
|
76
76
|
|
77
77
|
```
|
78
78
|
Class KafkaConsumer
|
79
|
-
include Kafka::Retryable::
|
79
|
+
include Kafka::Retryable::FailureHandler
|
80
80
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
81
|
+
configure_handler buffer: :kafka,
|
82
|
+
dead_letter_queue: :topic_t1,
|
83
|
+
exception_blacklist: [Karafka::InvalidMessageError],
|
84
|
+
after_failure: ->(error, message) { Bugsnag.notify("#{error}-#{message}") }
|
85
85
|
|
86
86
|
def consume
|
87
87
|
handle_failure(message)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Kafka
|
2
2
|
module Retryable
|
3
|
-
module
|
3
|
+
module FailureHandler
|
4
4
|
module ClassMethods
|
5
5
|
# Define failure handler configuration here
|
6
6
|
# failure_handler buffer: :kafka,
|
@@ -9,7 +9,7 @@ module Kafka
|
|
9
9
|
# after_failure: ->(error, _) { Bugsnag.notify(error) }
|
10
10
|
#
|
11
11
|
# Only buffer and dead_letter_queue are required arguments
|
12
|
-
def
|
12
|
+
def configure_handler(failure_handling_options)
|
13
13
|
validate_options(failure_handling_options)
|
14
14
|
@@failure_configuration ||= {}
|
15
15
|
@@failure_configuration[to_s] = failure_handling_options
|
data/lib/kafka/retryable.rb
CHANGED
@@ -25,5 +25,5 @@ require 'waterdrop'
|
|
25
25
|
require 'kafka/retryable/schemas/failure_handler_options'
|
26
26
|
require 'kafka/retryable/errors/invalid_handling_options'
|
27
27
|
require 'kafka/retryable/policy_finder'
|
28
|
-
require 'kafka/retryable/
|
28
|
+
require 'kafka/retryable/failure_handler'
|
29
29
|
require 'kafka/retryable/config'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kafka-retryable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ankita Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-configurable
|
@@ -98,11 +98,12 @@ files:
|
|
98
98
|
- bin/setup
|
99
99
|
- config/errors.yml
|
100
100
|
- kafka-retryable.gemspec
|
101
|
+
- lib/kafka-retryable.rb
|
101
102
|
- lib/kafka/retryable.rb
|
102
103
|
- lib/kafka/retryable/config.rb
|
103
104
|
- lib/kafka/retryable/errors/invalid_handling_options.rb
|
104
105
|
- lib/kafka/retryable/errors/invalid_policy.rb
|
105
|
-
- lib/kafka/retryable/
|
106
|
+
- lib/kafka/retryable/failure_handler.rb
|
106
107
|
- lib/kafka/retryable/message_dispatcher/kafka.rb
|
107
108
|
- lib/kafka/retryable/policies/kafka_handler.rb
|
108
109
|
- lib/kafka/retryable/policy_finder.rb
|