pub_sub_model_sync 1.6.1pre → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ef75354a40d7b4da0e81bf3d56dcafca197f63827e77ec504bb041875032d6c
4
- data.tar.gz: 7ebcdc2be8176224f774b9ea65d4cdd98829d2b514a0fa13d3e8938abe56e8af
3
+ metadata.gz: 0e26ccd6c9b5cbcc0809a9f69e98e29d28de26b5f6b8e1fd8ccd26605f86a545
4
+ data.tar.gz: '08d8a2f7bb38d98c962537859fd5ec6ffb69810fcbdee0e35fc6a9495efe9bce'
5
5
  SHA512:
6
- metadata.gz: b9dddee04900a58852d7410b3aeaeefc8875703c67cfa7e8becb90ecb74cfb92c4126e8de1db7e52a57ff639d5c254665886f94abbea4d3e6ba859a52ca62cde
7
- data.tar.gz: acb90e09cc29fa7e8d26b88cd1c5a4b34a74d09af84b263389cdf3b4e694d44d823f6addd0656f145503dea17d87898d9e029c6e4829822b11c595617e38a0d7
6
+ metadata.gz: 53727bf22d98289607eb3261f1687709451ca6d14c7047f1f2a6dc52088789fc2f8b806528126aec8165c46af45aa19b2bbbb4ac5586984d663e192a83532df6
7
+ data.tar.gz: 98c8a4ec4948f68296eea8730671c766ee55657ebbb580b3642c059632d090ced160a05ce3b105709645435b6ce816a88d5465935bd4f31339c3cb2870297a62
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pub_sub_model_sync (1.6.0)
4
+ pub_sub_model_sync (1.6.1)
5
5
  rails
6
6
 
7
7
  GEM
@@ -99,8 +99,8 @@ GEM
99
99
  googleapis-common-protos-types (>= 1.0.6, < 2.0)
100
100
  googleauth (~> 0.15, >= 0.15.1)
101
101
  grpc (~> 1.36)
102
- globalid (1.0.0)
103
- activesupport (>= 5.0)
102
+ globalid (0.4.2)
103
+ activesupport (>= 4.2.0)
104
104
  google-cloud-core (1.6.0)
105
105
  google-cloud-env (~> 1.0)
106
106
  google-cloud-errors (~> 1.0)
@@ -143,12 +143,12 @@ GEM
143
143
  i18n (1.8.10)
144
144
  concurrent-ruby (~> 1.0)
145
145
  jwt (2.2.3)
146
- loofah (2.15.0)
146
+ loofah (2.9.1)
147
147
  crass (~> 1.0.2)
148
148
  nokogiri (>= 1.5.9)
149
149
  mail (2.7.1)
150
150
  mini_mime (>= 0.1.1)
151
- marcel (1.0.2)
151
+ marcel (1.0.1)
152
152
  memoist (0.16.2)
153
153
  method_source (1.0.0)
154
154
  mini_mime (1.0.3)
@@ -156,7 +156,7 @@ GEM
156
156
  multi_json (1.15.0)
157
157
  multipart-post (2.1.1)
158
158
  nio4r (2.5.8)
159
- nokogiri (1.12.5-x86_64-linux)
159
+ nokogiri (1.13.4-x86_64-darwin)
160
160
  racc (~> 1.4)
161
161
  os (1.1.1)
162
162
  parallel (1.20.1)
@@ -185,7 +185,7 @@ GEM
185
185
  rails-dom-testing (2.0.3)
186
186
  activesupport (>= 4.2.0)
187
187
  nokogiri (>= 1.6)
188
- rails-html-sanitizer (1.4.2)
188
+ rails-html-sanitizer (1.3.0)
189
189
  loofah (~> 2.3)
190
190
  railties (6.1.3.2)
191
191
  actionpack (= 6.1.3.2)
@@ -230,19 +230,19 @@ GEM
230
230
  faraday (>= 0.17.3, < 2.0)
231
231
  jwt (>= 1.5, < 3.0)
232
232
  multi_json (~> 1.10)
233
- sprockets (4.0.3)
233
+ sprockets (4.0.2)
234
234
  concurrent-ruby (~> 1.0)
235
235
  rack (> 1, < 3)
236
- sprockets-rails (3.4.2)
237
- actionpack (>= 5.2)
238
- activesupport (>= 5.2)
236
+ sprockets-rails (3.2.2)
237
+ actionpack (>= 4.0)
238
+ activesupport (>= 4.0)
239
239
  sprockets (>= 3.0.0)
240
240
  sqlite3 (1.4.2)
241
- thor (1.2.1)
241
+ thor (1.1.0)
242
242
  tzinfo (2.0.4)
243
243
  concurrent-ruby (~> 1.0)
244
244
  unicode-display_width (1.7.0)
245
- websocket-driver (0.7.5)
245
+ websocket-driver (0.7.3)
246
246
  websocket-extensions (>= 0.1.0)
247
247
  websocket-extensions (0.1.5)
248
248
  zeitwerk (2.4.2)
data/README.md CHANGED
@@ -380,7 +380,7 @@ Note: To reduce Payload size, some header info are not delivered (Enable debug m
380
380
  **Note**: When any error is raised when saving user or posts, the transaction is cancelled and thus all notifications wont be delivered (customizable by `PubSubModelSync::Config.transactions_use_buffer`).
381
381
 
382
382
  - Manual transactions
383
- `PubSubModelSync::MessagePublisher::transaction(key, max_buffer: , &block)`
383
+ `PubSubModelSync::MessagePublisher::transaction(key, headers: { target_app_key: 'my_other_app_key' } &block)`
384
384
  - `key` (String|nil) Key used as the ordering_key for all inner notifications (When nil, will use `ordering_key` of the first notification)
385
385
  - `max_buffer:` (Integer, default: `PubSubModelSync::Config.transactions_max_buffer`) Transaction buffer size (DEPRECATED).
386
386
  - `headers:` (Hash) Header settings to be added to each Payload's header inside this transaction
@@ -20,12 +20,13 @@ module PubSubModelSync
20
20
  payload_info = { klass: payload.klass, action: payload.action, mode: payload.mode }
21
21
  log("No subscribers found for #{payload_info}", :warn) if config.debug && subscribers.empty?
22
22
  subscribers.each(&method(:run_subscriber))
23
+ rescue => e
24
+ notify_error(e)
25
+ raise
23
26
  end
24
27
 
25
28
  def process
26
- process!
27
- rescue => e
28
- notify_error(e)
29
+ process! rescue nil # rubocop:disable Style/RescueModifier
29
30
  end
30
31
 
31
32
  private
@@ -40,9 +41,7 @@ module PubSubModelSync
40
41
  res = config.on_success_processing.call(payload, { subscriber: subscriber })
41
42
  log "processed message with: #{payload.inspect}" if res != :skip_log
42
43
  rescue => e
43
- rr = retry_process?(e, retries += 1)
44
- log("failed processing sync: #{{ klass: e.class.name, msg: e.message, retries: retries, rr: rr, payload: payload }.inspect}", :error)
45
- rr ? retry : raise(e)
44
+ retry_process?(e, retries += 1) ? retry : raise(e)
46
45
  end
47
46
 
48
47
  def processable?(subscriber)
@@ -58,15 +57,17 @@ module PubSubModelSync
58
57
  res = config.on_error_processing.call(error, { payload: payload })
59
58
  log("#{error_msg} #{error_details}", :error) if res != :skip_log
60
59
  rescue => e
61
- error_details = [payload, e.message, e.backtrace]
62
60
  log("#{error_msg} #{error_details}", :error)
63
61
  raise(e)
64
62
  end
65
63
 
66
64
  # @param error [StandardError]
67
65
  def lost_db_connection?(error)
68
- classes = %w[ActiveRecord::ConnectionTimeoutError PG::UnableToSend ActiveRecord::ConnectionNotEstablished]
69
- classes.include?(error.class.name) || error.message.match?(/Lost connection to MySQL server/i)
66
+ classes = %w[ActiveRecord::ConnectionTimeoutError PG::Error ActiveRecord::ConnectionNotEstablished]
67
+ classes.include?(error.class.name) ||
68
+ error.message.match?(/Lost connection to MySQL server/i) ||
69
+ error.message.start_with?('PG::ConnectionBad:') ||
70
+ error.message.start_with?('PG::UnableToSend:')
70
71
  end
71
72
 
72
73
  def retry_process?(error, retries) # rubocop:disable Metrics/MethodLength
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PubSubModelSync
4
- VERSION = '1.6.1pre'
4
+ VERSION = '1.6.2'
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: 1.6.1pre
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-25 00:00:00.000000000 Z
11
+ date: 2022-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -156,9 +156,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
156
  version: '2.4'
157
157
  required_rubygems_version: !ruby/object:Gem::Requirement
158
158
  requirements:
159
- - - ">"
159
+ - - ">="
160
160
  - !ruby/object:Gem::Version
161
- version: 1.3.1
161
+ version: '0'
162
162
  requirements: []
163
163
  rubygems_version: 3.0.8
164
164
  signing_key: