delayed 1.2.1 → 2.0.1
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 +4 -4
- data/README.md +19 -6
- data/Rakefile +5 -1
- data/app/models/delayed/job.rb +42 -29
- data/db/migrate/1_create_delayed_jobs.rb +0 -2
- data/db/migrate/3_add_index_to_delayed_jobs_name.rb +14 -6
- data/db/migrate/4_index_live_jobs.rb +33 -0
- data/db/migrate/5_index_failed_jobs.rb +24 -0
- data/db/migrate/6_set_postgres_fillfactor.rb +31 -0
- data/db/migrate/7_remove_legacy_index.rb +12 -0
- data/lib/delayed/backend/job_preparer.rb +19 -0
- data/lib/delayed/exceptions.rb +4 -1
- data/lib/delayed/helpers/migration.rb +121 -0
- data/lib/delayed/monitor.rb +21 -11
- data/lib/delayed/version.rb +1 -1
- data/lib/delayed/worker.rb +1 -1
- data/lib/delayed.rb +1 -0
- data/spec/delayed/__snapshots__/job_spec.rb.snap +271 -0
- data/spec/delayed/__snapshots__/monitor_spec.rb.snap +969 -0
- data/spec/delayed/helpers/migration_spec.rb +67 -0
- data/spec/delayed/job_spec.rb +189 -13
- data/spec/delayed/monitor_spec.rb +61 -18
- data/spec/helper.rb +129 -11
- data/spec/sample_jobs.rb +10 -0
- data/spec/worker_spec.rb +18 -0
- metadata +17 -3
data/spec/worker_spec.rb
CHANGED
|
@@ -221,6 +221,24 @@ describe Delayed::Worker do
|
|
|
221
221
|
end
|
|
222
222
|
end
|
|
223
223
|
|
|
224
|
+
describe '.max_run_time' do
|
|
225
|
+
before { described_class.max_run_time = 1 }
|
|
226
|
+
after { RescuesStandardErrorJob.runs = 0 }
|
|
227
|
+
|
|
228
|
+
it 'times out and raises a WorkerTimeout that bypasses any StandardError rescuing' do
|
|
229
|
+
Delayed::Job.enqueue RescuesStandardErrorJob.new
|
|
230
|
+
described_class.new.work_off
|
|
231
|
+
|
|
232
|
+
expect(Delayed::Job.count).to eq 1
|
|
233
|
+
expect(RescuesStandardErrorJob.runs).to eq 1
|
|
234
|
+
Delayed::Job.first.tap do |job|
|
|
235
|
+
expect(job.attempts).to eq 1
|
|
236
|
+
expect(job.last_error).to match(/execution expired/)
|
|
237
|
+
expect(job.last_error).to match(/Delayed::Worker.max_run_time is only 1 second/)
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
224
242
|
describe 'lifecycle callbacks' do
|
|
225
243
|
let(:plugin) do
|
|
226
244
|
Class.new(Delayed::Plugin) do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: delayed
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nathan Griffith
|
|
@@ -16,9 +16,10 @@ authors:
|
|
|
16
16
|
- Matt Griffin
|
|
17
17
|
- Steve Richert
|
|
18
18
|
- Tobias Lütke
|
|
19
|
+
autorequire:
|
|
19
20
|
bindir: bin
|
|
20
21
|
cert_chain: []
|
|
21
|
-
date:
|
|
22
|
+
date: 2026-01-05 00:00:00.000000000 Z
|
|
22
23
|
dependencies:
|
|
23
24
|
- !ruby/object:Gem::Dependency
|
|
24
25
|
name: activerecord
|
|
@@ -68,12 +69,17 @@ files:
|
|
|
68
69
|
- db/migrate/1_create_delayed_jobs.rb
|
|
69
70
|
- db/migrate/2_add_name_to_delayed_jobs.rb
|
|
70
71
|
- db/migrate/3_add_index_to_delayed_jobs_name.rb
|
|
72
|
+
- db/migrate/4_index_live_jobs.rb
|
|
73
|
+
- db/migrate/5_index_failed_jobs.rb
|
|
74
|
+
- db/migrate/6_set_postgres_fillfactor.rb
|
|
75
|
+
- db/migrate/7_remove_legacy_index.rb
|
|
71
76
|
- lib/delayed.rb
|
|
72
77
|
- lib/delayed/active_job_adapter.rb
|
|
73
78
|
- lib/delayed/backend/base.rb
|
|
74
79
|
- lib/delayed/backend/job_preparer.rb
|
|
75
80
|
- lib/delayed/engine.rb
|
|
76
81
|
- lib/delayed/exceptions.rb
|
|
82
|
+
- lib/delayed/helpers/migration.rb
|
|
77
83
|
- lib/delayed/job_wrapper.rb
|
|
78
84
|
- lib/delayed/lifecycle.rb
|
|
79
85
|
- lib/delayed/message_sending.rb
|
|
@@ -99,7 +105,10 @@ files:
|
|
|
99
105
|
- spec/autoloaded/instance_struct.rb
|
|
100
106
|
- spec/autoloaded/struct.rb
|
|
101
107
|
- spec/database.yml
|
|
108
|
+
- spec/delayed/__snapshots__/job_spec.rb.snap
|
|
109
|
+
- spec/delayed/__snapshots__/monitor_spec.rb.snap
|
|
102
110
|
- spec/delayed/active_job_adapter_spec.rb
|
|
111
|
+
- spec/delayed/helpers/migration_spec.rb
|
|
103
112
|
- spec/delayed/job_spec.rb
|
|
104
113
|
- spec/delayed/monitor_spec.rb
|
|
105
114
|
- spec/delayed/plugins/instrumentation_spec.rb
|
|
@@ -123,6 +132,7 @@ metadata:
|
|
|
123
132
|
bug_tracker_uri: https://github.com/betterment/delayed/issues
|
|
124
133
|
source_code_uri: https://github.com/betterment/delayed
|
|
125
134
|
rubygems_mfa_required: 'true'
|
|
135
|
+
post_install_message:
|
|
126
136
|
rdoc_options: []
|
|
127
137
|
require_paths:
|
|
128
138
|
- lib
|
|
@@ -137,7 +147,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
137
147
|
- !ruby/object:Gem::Version
|
|
138
148
|
version: '0'
|
|
139
149
|
requirements: []
|
|
140
|
-
rubygems_version: 3.
|
|
150
|
+
rubygems_version: 3.4.19
|
|
151
|
+
signing_key:
|
|
141
152
|
specification_version: 4
|
|
142
153
|
summary: a multi-threaded, SQL-driven ActiveJob backend used at Betterment to process
|
|
143
154
|
millions of background jobs per day
|
|
@@ -147,7 +158,10 @@ test_files:
|
|
|
147
158
|
- spec/autoloaded/instance_struct.rb
|
|
148
159
|
- spec/autoloaded/struct.rb
|
|
149
160
|
- spec/database.yml
|
|
161
|
+
- spec/delayed/__snapshots__/job_spec.rb.snap
|
|
162
|
+
- spec/delayed/__snapshots__/monitor_spec.rb.snap
|
|
150
163
|
- spec/delayed/active_job_adapter_spec.rb
|
|
164
|
+
- spec/delayed/helpers/migration_spec.rb
|
|
151
165
|
- spec/delayed/job_spec.rb
|
|
152
166
|
- spec/delayed/monitor_spec.rb
|
|
153
167
|
- spec/delayed/plugins/instrumentation_spec.rb
|