pub_sub_model_sync 0.5.2 → 0.5.3
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/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/README.md +14 -13
- data/lib/pub_sub_model_sync/service_google.rb +2 -2
- data/lib/pub_sub_model_sync/service_kafka.rb +4 -4
- data/lib/pub_sub_model_sync/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 608c6430e2e37529a6a219d09db34b7a540d89bed73da7e272c1624ad7ba821f
|
4
|
+
data.tar.gz: 99eaf893d6c66d3e7429d6ba8758b7e44d9ca0a29069b72f260bccecd7a207f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9a0d769a2c18b9097d7f9d4b10f8f11567e743a39bcf10fe39ed4bd3daf156fb028685be4f8100d92d9bb0fd8ea742a1c0a5dca8fe0743c0c4e21b3b23fd552
|
7
|
+
data.tar.gz: 4ff19cc02656fd8ddae04e061808c89ec61eae3e86cd889a3c2abc3fed0c2975ed8eed995363ad834d294f75ac340fdeb454c1de21e05e2f4080458664f8d181
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
# 0.5.3 (December 30, 2020)
|
4
|
+
- fix: kafka consume all messages from different apps
|
5
|
+
- style: use the correct consumer key
|
6
|
+
|
3
7
|
# 0.5.2 (December 30, 2020)
|
4
8
|
- fix: rabbitmq deliver messages to all subscribers
|
5
9
|
- fix: rabbitmq persist messages to recover after restarting
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -28,10 +28,9 @@ And then execute: $ bundle install
|
|
28
28
|
```ruby
|
29
29
|
# initializers/pub_sub_config.rb
|
30
30
|
PubSubModelSync::Config.service_name = :google
|
31
|
-
PubSubModelSync::Config.project = 'project-id'
|
31
|
+
PubSubModelSync::Config.project = 'google-project-id'
|
32
32
|
PubSubModelSync::Config.credentials = 'path-to-the-config'
|
33
33
|
PubSubModelSync::Config.topic_name = 'sample-topic'
|
34
|
-
PubSubModelSync::Config.subscription_name = 'p1-subscriber'
|
35
34
|
```
|
36
35
|
See details here:
|
37
36
|
https://github.com/googleapis/google-cloud-ruby/tree/master/google-cloud-pubsub
|
@@ -40,7 +39,7 @@ And then execute: $ bundle install
|
|
40
39
|
```ruby
|
41
40
|
PubSubModelSync::Config.service_name = :rabbitmq
|
42
41
|
PubSubModelSync::Config.bunny_connection = 'amqp://guest:guest@localhost'
|
43
|
-
PubSubModelSync::Config.queue_name = ''
|
42
|
+
PubSubModelSync::Config.queue_name = 'model-sync'
|
44
43
|
PubSubModelSync::Config.topic_name = 'sample-topic'
|
45
44
|
```
|
46
45
|
See details here: https://github.com/ruby-amqp/bunny
|
@@ -48,7 +47,7 @@ And then execute: $ bundle install
|
|
48
47
|
- configuration for Apache Kafka (You need kafka installed)
|
49
48
|
```ruby
|
50
49
|
PubSubModelSync::Config.service_name = :kafka
|
51
|
-
PubSubModelSync::Config.kafka_connection = [["kafka1:9092", "localhost:2121"], logger: Rails.logger]
|
50
|
+
PubSubModelSync::Config.kafka_connection = [["kafka1:9092", "localhost:2121"], { logger: Rails.logger }]
|
52
51
|
PubSubModelSync::Config.topic_name = 'sample-topic'
|
53
52
|
```
|
54
53
|
See details here: https://github.com/zendesk/ruby-kafka
|
@@ -283,23 +282,25 @@ config = PubSubModelSync::Config
|
|
283
282
|
config.debug = true
|
284
283
|
```
|
285
284
|
|
286
|
-
-
|
285
|
+
- ```.subscription_name = 'app-2'```
|
286
|
+
Permit to define a custom consumer identifier (Default: Rails application name)
|
287
|
+
- ```.debug = true```
|
287
288
|
(true/false*) => show advanced log messages
|
288
|
-
-
|
289
|
+
- ```.logger = Rails.logger```
|
289
290
|
(Logger) => define custom logger
|
290
|
-
-
|
291
|
+
- ```.disabled_callback_publisher = ->(_model, _action) { false }```
|
291
292
|
(true/false*) => if true, does not listen model callbacks for auto sync (Create/Update/Destroy)
|
292
|
-
-
|
293
|
+
- ```.on_before_processing = ->(payload, subscriber) { puts payload }```
|
293
294
|
(Proc) => called before processing received message (:cancel can be returned to skip processing)
|
294
|
-
-
|
295
|
+
- ```.on_success_processing = ->(payload, subscriber) { puts payload }```
|
295
296
|
(Proc) => called when a message was successfully processed
|
296
|
-
-
|
297
|
+
- ```.on_error_processing = ->(exception, payload) { sleep 1; payload.process! }```
|
297
298
|
(Proc) => called when a message failed when processing
|
298
|
-
-
|
299
|
+
- ```.on_before_publish = ->(payload) { puts payload }```
|
299
300
|
(Proc) => called before publishing a message (:cancel can be returned to skip publishing)
|
300
|
-
-
|
301
|
+
- ```.on_after_publish = ->(payload) { puts payload }```
|
301
302
|
(Proc) => called after publishing a message
|
302
|
-
-
|
303
|
+
- ```.on_error_publish = ->(exception, payload) { sleep 1; payload.publish! }```
|
303
304
|
(Proc) => called when failed publishing a message
|
304
305
|
|
305
306
|
## TODO
|
@@ -39,8 +39,8 @@ module PubSubModelSync
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def subscribe_to_topic
|
42
|
-
topic.subscription(config.
|
43
|
-
topic.subscribe(config.
|
42
|
+
topic.subscription(config.subscription_key) ||
|
43
|
+
topic.subscribe(config.subscription_key)
|
44
44
|
end
|
45
45
|
|
46
46
|
def process_message(received_message)
|
@@ -10,11 +10,11 @@ module PubSubModelSync
|
|
10
10
|
cattr_accessor :producer
|
11
11
|
attr_accessor :config, :service, :consumer
|
12
12
|
|
13
|
-
CONSUMER_GROUP = 'service_model_sync'
|
14
|
-
|
15
13
|
def initialize
|
16
14
|
@config = PubSubModelSync::Config
|
17
|
-
|
15
|
+
settings = config.kafka_connection
|
16
|
+
settings[1][:client_id] ||= config.subscription_key
|
17
|
+
@service = Kafka.new(*settings)
|
18
18
|
end
|
19
19
|
|
20
20
|
def listen_messages
|
@@ -44,7 +44,7 @@ module PubSubModelSync
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def start_consumer
|
47
|
-
@consumer = service.consumer(group_id:
|
47
|
+
@consumer = service.consumer(group_id: config.subscription_key)
|
48
48
|
consumer.subscribe(config.topic_name)
|
49
49
|
end
|
50
50
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pub_sub_model_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|