maintenance_tasks 2.16.0 → 2.17.0

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: 5504bbe129c76305465fce6a4cb5310feb2c0fd0fe2516a1896f60615825e183
4
- data.tar.gz: 3a1cbf3fc0eef572d7b8e1451331e33618e8a1b888cde2cf8d39e0c6363b6a6a
3
+ metadata.gz: cd230e758c366ce730cdfdb91a7ba7ae433582d69f01c78c828f22ae756401b7
4
+ data.tar.gz: fb3dd9d633b907e3ceaae6c7db7ed84c75b033f1832bd175f143fb590fcd0379
5
5
  SHA512:
6
- metadata.gz: e59152a9747d77adf137470e375ad68d06b07b410c73879f14f3d5cb418f26abe831102b32f6e5868f8824a2999f43ca4fdd0ad6a7eb84e85fbdb9d4e1530db7
7
- data.tar.gz: 07bda592ce0919dc2487eb1df8ea585addbdaab8a8bca20c9f67332e3b5f8f04b6b2a66231de112e919a646352453a707f9909d857d5d57c7c58f9c4d46c8337
6
+ metadata.gz: 850d1e302af870bbbd8a83c5a6db4b2080661ddd29d5a56e1f0e77e54e8cab983d56fe43fab39a14cf4031083e1df2345dad4901c035d689e744246d838a98db
7
+ data.tar.gz: d7bcab900521437f9e2ccf921f4213c28d688bc484a39920f05236184dc0072a5d929fcc81940e708ffeda7ef482e7787d96d52cf495b3f19568fd0058f6c328
data/README.md CHANGED
@@ -1047,6 +1047,8 @@ Reports to the error reporter will contain the following data:
1047
1047
  * `run_id`: The id of the errored Task run
1048
1048
  * `tick_count`: The tick count at the time of the error
1049
1049
  * `errored_element`: The element, if any, that was being processed when the
1050
+ Task errored. Active Record elements are reported as a hash with
1051
+ `class_name` and `id` keys.
1050
1052
  * `source`: This will be `maintenance-tasks`
1051
1053
  * `handled`: the value of `MaintenanceTasks.report_errors_as_handled` (default `true`, see below)
1052
1054
 
@@ -42,6 +42,15 @@ module MaintenanceTasks
42
42
  @run.cursor
43
43
  end
44
44
 
45
+ def serialized_errored_element(errored_element)
46
+ return errored_element unless errored_element.is_a?(ActiveRecord::Base)
47
+
48
+ {
49
+ class_name: errored_element.class.name,
50
+ id: errored_element.id,
51
+ }
52
+ end
53
+
45
54
  def build_enumerator(_run, cursor:)
46
55
  cursor ||= deserialized_run_cursor
47
56
  self.cursor_position = cursor
@@ -206,10 +215,15 @@ module MaintenanceTasks
206
215
  errored_element = task_context.delete(:errored_element)
207
216
  MaintenanceTasks.error_handler.call(error, task_context.except(:run_id, :tick_count), errored_element)
208
217
  else
218
+ report_context = task_context.dup
219
+ if report_context.key?(:errored_element)
220
+ report_context[:errored_element] = serialized_errored_element(report_context[:errored_element])
221
+ end
222
+
209
223
  Rails.error.report(
210
224
  error,
211
225
  handled: MaintenanceTasks.report_errors_as_handled,
212
- context: task_context,
226
+ context: report_context,
213
227
  source: "maintenance-tasks",
214
228
  )
215
229
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class AddCursorIsJsonFlagToRuns < ActiveRecord::Migration[7.1]
3
+ class AddCursorIsJsonFlagToRuns < ActiveRecord::Migration[7.2]
4
4
  def change
5
5
  add_column(:maintenance_tasks_runs, :cursor_is_json, :boolean, default: false, null: false)
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maintenance_tasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.16.0
4
+ version: 2.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify Engineering
@@ -15,42 +15,42 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '7.1'
18
+ version: '7.2'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '7.1'
25
+ version: '7.2'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activejob
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '7.1'
32
+ version: '7.2'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '7.1'
39
+ version: '7.2'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: activerecord
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '7.1'
46
+ version: '7.2'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '7.1'
53
+ version: '7.2'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: csv
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -85,14 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: '7.1'
88
+ version: '7.2'
89
89
  type: :runtime
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
- version: '7.1'
95
+ version: '7.2'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: zeitwerk
98
98
  requirement: !ruby/object:Gem::Requirement
@@ -184,7 +184,7 @@ homepage: https://github.com/Shopify/maintenance_tasks
184
184
  licenses:
185
185
  - MIT
186
186
  metadata:
187
- source_code_uri: https://github.com/Shopify/maintenance_tasks/tree/v2.16.0
187
+ source_code_uri: https://github.com/Shopify/maintenance_tasks/tree/v2.17.0
188
188
  allowed_push_host: https://rubygems.org
189
189
  rdoc_options: []
190
190
  require_paths:
@@ -200,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  requirements: []
203
- rubygems_version: 4.0.11
203
+ rubygems_version: 4.0.12
204
204
  specification_version: 4
205
205
  summary: A Rails engine for queuing and managing maintenance tasks
206
206
  test_files: []