kafka-retryable 0.1.2 → 0.2.1
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/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
|