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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0eca4a27d7aca148acabc3412b1d56fdd3648f87d03dfb61337fee2cadea57c2
4
- data.tar.gz: aea755f974264fb6e223e8680392bdc729cd917be1e93532965450f07c9a59b4
3
+ metadata.gz: 608c6430e2e37529a6a219d09db34b7a540d89bed73da7e272c1624ad7ba821f
4
+ data.tar.gz: 99eaf893d6c66d3e7429d6ba8758b7e44d9ca0a29069b72f260bccecd7a207f0
5
5
  SHA512:
6
- metadata.gz: 64b6f9add9e7d382f0e3e5dae8195fdbf5e642008c7330f3e47fd55cb7f7749e381ea5df2b8d10915b907f3c6932fffc4a63a3dcfcabf88d0737a91d92c03bc7
7
- data.tar.gz: edeb6931f1bdf09eebba01a036261571d8b51429475af49423f8c4de74e9241e45b59e2742e3d82b514d56f5abe4dbb503849915cfc86beca5b55b8d5a042873
6
+ metadata.gz: c9a0d769a2c18b9097d7f9d4b10f8f11567e743a39bcf10fe39ed4bd3daf156fb028685be4f8100d92d9bb0fd8ea742a1c0a5dca8fe0743c0c4e21b3b23fd552
7
+ data.tar.gz: 4ff19cc02656fd8ddae04e061808c89ec61eae3e86cd889a3c2abc3fed0c2975ed8eed995363ad834d294f75ac340fdeb454c1de21e05e2f4080458664f8d181
@@ -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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pub_sub_model_sync (0.5.2)
4
+ pub_sub_model_sync (0.5.3)
5
5
  rails
6
6
 
7
7
  GEM
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
- - ```debug = true```
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
- - ```logger = Rails.logger```
289
+ - ```.logger = Rails.logger```
289
290
  (Logger) => define custom logger
290
- - ```disabled_callback_publisher = ->(_model, _action) { false }```
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
- - ```on_before_processing = ->(payload, subscriber) { puts payload }```
293
+ - ```.on_before_processing = ->(payload, subscriber) { puts payload }```
293
294
  (Proc) => called before processing received message (:cancel can be returned to skip processing)
294
- - ```on_success_processing = ->(payload, subscriber) { puts payload }```
295
+ - ```.on_success_processing = ->(payload, subscriber) { puts payload }```
295
296
  (Proc) => called when a message was successfully processed
296
- - ```on_error_processing = ->(exception, payload) { sleep 1; payload.process! }```
297
+ - ```.on_error_processing = ->(exception, payload) { sleep 1; payload.process! }```
297
298
  (Proc) => called when a message failed when processing
298
- - ```on_before_publish = ->(payload) { puts payload }```
299
+ - ```.on_before_publish = ->(payload) { puts payload }```
299
300
  (Proc) => called before publishing a message (:cancel can be returned to skip publishing)
300
- - ```on_after_publish = ->(payload) { puts payload }```
301
+ - ```.on_after_publish = ->(payload) { puts payload }```
301
302
  (Proc) => called after publishing a message
302
- - ```on_error_publish = ->(exception, payload) { sleep 1; payload.publish! }```
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.subscription_name) ||
43
- topic.subscribe(config.subscription_name)
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
- @service = Kafka.new(*config.kafka_connection)
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: CONSUMER_GROUP)
47
+ @consumer = service.consumer(group_id: config.subscription_key)
48
48
  consumer.subscribe(config.topic_name)
49
49
  end
50
50
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PubSubModelSync
4
- VERSION = '0.5.2'
4
+ VERSION = '0.5.3'
5
5
  end
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.2
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-30 00:00:00.000000000 Z
11
+ date: 2020-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails