sbmt-outbox 6.19.0 → 6.19.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: c298e8639794940e746e4d60a2c66781f98eb058b1bb85b040695232a72fa250
4
- data.tar.gz: f3f4bef1e155b14fbd7b488f82c6e84b144ad32e2204d4ebe31b50566310e4ee
3
+ metadata.gz: 2388c5b92575f95604799a724ff87edba32ad630c3f12bd194c5798a32c2b77e
4
+ data.tar.gz: 8180f941d28cb36773e627c147285cda718c8be4c175649ddeaa94087153ccd6
5
5
  SHA512:
6
- metadata.gz: 1aebf60adf895f20432a04621a2fa88cd63722772906dac4870eb4cc0342e1d762f93ba287bf1bc065e1fa29eb2e14a514138570a84c202112cf28c4e6df00f6
7
- data.tar.gz: 64325c221edc8da990c6774e96208ae964e72407dd5483f83ab8ed189a2bd35f84c9f906b4dca0ae9d0b038266e83ea5a96e687fb4094d4513c7212789a29f07
6
+ metadata.gz: 453412ec8a80104a64f70c2fbbc4fff612ab1b0294047515865a3434caed9808ddf9fd8ba3ee1feb4e924eb65ef5e197fcbbdbbec84c4ba04a2d1014e28a5e30
7
+ data.tar.gz: a76efc7b0026ad182abcc785159dfcdba4236f314bf310210bdf7ed8c234b0d3b5c60911f3218c1901c2d5557d1b04217efb713a2787e1431e47fe7344167400
@@ -118,7 +118,10 @@ module Sbmt
118
118
  batch_size = item_class.config.deletion_batch_size
119
119
  time_window = item_class.config.deletion_time_window
120
120
  min_date = Outbox.database_switcher.use_slave do
121
- item_class.where(table[:status].in(statuses)).minimum(:created_at)
121
+ # This query assumes that record with minimum 'id' also has minimum 'created_at'.
122
+ # We use it because it should be faster than plain 'SELECT MIN(created_at) ...'.
123
+ min_id = item_class.select(table[:id].minimum).where(status: statuses)
124
+ item_class.select(:created_at).where(table[:id].eq(min_id.arel)).first&.created_at
122
125
  end
123
126
  deleted_count = nil
124
127
 
@@ -174,10 +177,14 @@ module Sbmt
174
177
  end
175
178
 
176
179
  def delete_items_in_batches_with_between_mysql(waterline, statuses)
180
+ table = item_class.arel_table
177
181
  batch_size = item_class.config.deletion_batch_size
178
182
  time_window = item_class.config.deletion_time_window
179
183
  min_date = Outbox.database_switcher.use_slave do
180
- item_class.where(status: statuses).minimum(:created_at)
184
+ # This query assumes that record with minimum 'id' also has minimum 'created_at'.
185
+ # We use it because plain 'SELECT MIN(created_at) ...' is VERY slow in MySQL.
186
+ min_id = item_class.select(table[:id].minimum).where(status: statuses)
187
+ item_class.select(:created_at).where(table[:id].eq(min_id.arel)).first&.created_at
181
188
  end
182
189
  deleted_count = nil
183
190
 
@@ -6,7 +6,7 @@ module Sbmt
6
6
  class << self
7
7
  def error(message, params = {})
8
8
  unless defined?(Sentry)
9
- Outbox.logger.log_error(message, params)
9
+ Outbox.logger.log_error(message, **params)
10
10
  return
11
11
  end
12
12
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sbmt
4
4
  module Outbox
5
- VERSION = "6.19.0"
5
+ VERSION = "6.19.2"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sbmt-outbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.19.0
4
+ version: 6.19.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sbermarket Ruby-Platform Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-02-11 00:00:00.000000000 Z
11
+ date: 2025-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool