pub_sub_model_sync 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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