pheromone 0.1.1 → 0.1.2
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 +36 -0
- data/lib/pheromone/version.rb +1 -1
- data/lib/pheromone.rb +9 -1
- metadata +24 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72824e89ef3425da33b45c276319f332728461b7
|
4
|
+
data.tar.gz: 5b5bba2271b1fbc069d06615fec68d66b6279cf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf9d4a27bb39fff06ee9fb98c0b501f3c0815330a73abfaf60d1f267588e523d9d550a5d645dd9d9f20a764f63375aba8a3a196aab1b39dc4be6907216f09061
|
7
|
+
data.tar.gz: 0c39091b06b7533f7c9989d9116f314c1badb813096e1e5ece4d0a675536b0eaba324e2f38584736bab54cc04bf8bd1f8543a8535364433889c71aae65d4af88
|
data/README.md
CHANGED
@@ -208,6 +208,42 @@ class PublishableModel < ActiveRecord::Base
|
|
208
208
|
end
|
209
209
|
```
|
210
210
|
|
211
|
+
### 5. Specifying producer options
|
212
|
+
|
213
|
+
[Ruby-Kafka](https://github.com/zendesk/ruby-kafka) allows sending options to change the behaviour of Kafka Producer.
|
214
|
+
|
215
|
+
These can be sent in by passing `producer_options` to the `publish` method:
|
216
|
+
|
217
|
+
```
|
218
|
+
class PublishableModel < ActiveRecord::Base
|
219
|
+
include Pheromone
|
220
|
+
publish [
|
221
|
+
{
|
222
|
+
event_types: [:create],
|
223
|
+
topic: :topic_test,
|
224
|
+
message: ->(obj) { { name: obj.name } },
|
225
|
+
producer_options: {
|
226
|
+
# The number of retries when attempting to deliver messages. The default is
|
227
|
+
# 2, so 3 attempts in total, but you can configure a higher or lower number:
|
228
|
+
max_retries: 5,
|
229
|
+
# The number of seconds to wait between retries. In order to handle longer
|
230
|
+
# periods of Kafka being unavailable, increase this number. The default is
|
231
|
+
# 1 second.
|
232
|
+
retry_backoff: 5,
|
233
|
+
# number of acknowledgements that the client should write to before returning
|
234
|
+
# possible values are :all, 0 or 1 and default behaviour is :all, requiring all
|
235
|
+
# replicas to acknowledge
|
236
|
+
required_acks: 1,
|
237
|
+
# compression can be enabled in order to improve bandwidth, and a minimum number
|
238
|
+
# of messages that need to be in the buffer before they are compressed can be
|
239
|
+
# specified using compression threshold
|
240
|
+
compression_codec: :snappy,
|
241
|
+
compression_threshold: 10
|
242
|
+
}
|
243
|
+
}
|
244
|
+
]
|
245
|
+
end
|
246
|
+
```
|
211
247
|
|
212
248
|
## Development
|
213
249
|
|
data/lib/pheromone/version.rb
CHANGED
data/lib/pheromone.rb
CHANGED
@@ -9,6 +9,13 @@ require 'waterdrop'
|
|
9
9
|
# publish message_options: [
|
10
10
|
# {
|
11
11
|
# topic: :topic1,
|
12
|
+
# producer_options: {
|
13
|
+
# max_retries: 5,
|
14
|
+
# retry_backoff: 5,
|
15
|
+
# compression_codec: :snappy,
|
16
|
+
# compression_threshold: 10,
|
17
|
+
# required_acks: 1
|
18
|
+
# }
|
12
19
|
# event_types: [:create, :update],
|
13
20
|
# message: { a: 1, b: 2 }
|
14
21
|
# },....
|
@@ -61,7 +68,8 @@ module Pheromone
|
|
61
68
|
def send_message(options)
|
62
69
|
WaterDrop::Message.new(
|
63
70
|
options[:topic],
|
64
|
-
message_meta_data.merge!(blob: message_blob(options)).to_json
|
71
|
+
message_meta_data.merge!(blob: message_blob(options)).to_json,
|
72
|
+
options[:producer_options] || {}
|
65
73
|
).send!
|
66
74
|
end
|
67
75
|
|
metadata
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pheromone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ankita Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: active_model_serializers
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
type: :
|
19
|
+
version: 0.9.3
|
20
|
+
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.9.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 4.2.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: activesupport
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 4.2.5
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: active_model_serializers
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.9.3
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 0.9.3
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: waterdrop
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +122,20 @@ dependencies:
|
|
136
122
|
- - "~>"
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '3.5'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: sqlite3
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: with_model
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|