delayed 0.4.0 → 0.5.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ace621cdafc8489809a02bcd03d0367f686b7bc1d9eba634263595da038b559f
|
|
4
|
+
data.tar.gz: 25b7047017850106283822f0ce6ef89c93b53e81303591b47772c121b3ec7eb9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: abc7e1858bb94efaa865df785abd79818d107952821e83830d8dc16a6415d506f50316a851fb01bf1182753e3f71565381e0b1c54a5ad9481123d46fadc2a283
|
|
7
|
+
data.tar.gz: 7eeaa1c9e12d6fc78345a29f8fb99ef5f6aa956bae5923fe94a0c78358247fbd581f96a07fcf9b33e79ff86ad06f78b357eba14e8d9638f1152fd39d139942ea
|
|
@@ -23,6 +23,41 @@ RSpec.describe Delayed::ActiveJobAdapter do
|
|
|
23
23
|
ActiveJob::Base.queue_adapter = adapter_was
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
it 'serializes a JobWrapper in the handler with expected fields' do
|
|
27
|
+
Timecop.freeze('2023-01-20T18:52:29Z') do
|
|
28
|
+
JobClass.perform_later
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Delayed::Job.last.tap do |dj|
|
|
32
|
+
expect(dj.handler.lines).to match [
|
|
33
|
+
"--- !ruby/object:Delayed::JobWrapper\n",
|
|
34
|
+
"job_data:\n",
|
|
35
|
+
" job_class: JobClass\n",
|
|
36
|
+
/ job_id: '?#{dj.payload_object.job_id}'?\n/,
|
|
37
|
+
/ provider_job_id: ?\n/,
|
|
38
|
+
" queue_name: default\n",
|
|
39
|
+
/ priority: ?\n/,
|
|
40
|
+
" arguments: []\n",
|
|
41
|
+
" executions: 0\n",
|
|
42
|
+
(" exception_executions: {}\n" if ActiveJob::VERSION::MAJOR >= 6),
|
|
43
|
+
" locale: en\n",
|
|
44
|
+
(/ timezone: ?\n/ if ActiveJob::VERSION::MAJOR >= 6),
|
|
45
|
+
(/ enqueued_at: '2023-01-20T18:52:29(\.\d+)?Z'\n/ if ActiveJob::VERSION::MAJOR >= 6),
|
|
46
|
+
(/ scheduled_at: ?\n/ if ActiveJob::VERSION::MAJOR >= 7 && ActiveJob::VERSION::MINOR >= 1),
|
|
47
|
+
].compact
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'deserializes even if the underlying job class is not defined' do
|
|
52
|
+
JobClass.perform_later
|
|
53
|
+
|
|
54
|
+
Delayed::Job.last.tap do |dj|
|
|
55
|
+
dj.handler = dj.handler.gsub('JobClass', 'MissingJobClass')
|
|
56
|
+
expect { dj.payload_object }.not_to raise_error
|
|
57
|
+
expect { dj.payload_object.job_id }.to raise_error(NameError, 'uninitialized constant MissingJobClass')
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
26
61
|
describe '.set' do
|
|
27
62
|
it 'supports priority as an integer' do
|
|
28
63
|
JobClass.set(priority: 43).perform_later
|
|
@@ -3,13 +3,13 @@ require "helper"
|
|
|
3
3
|
describe ActiveRecord do
|
|
4
4
|
it "loads classes with non-default primary key" do
|
|
5
5
|
expect {
|
|
6
|
-
YAML.
|
|
6
|
+
YAML.load_dj(Story.create.to_yaml)
|
|
7
7
|
}.not_to raise_error
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
it "loads classes even if not in default scope" do
|
|
11
11
|
expect {
|
|
12
|
-
YAML.
|
|
12
|
+
YAML.load_dj(Story.create(scoped: false).to_yaml)
|
|
13
13
|
}.not_to raise_error
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -57,8 +57,8 @@ describe Delayed::PerformableMailer do
|
|
|
57
57
|
job = MyMailer.with(foo: 1, bar: 2).delay.signup('john@example.com', beta_tester: false)
|
|
58
58
|
expect(job.payload_object.class).to eq(Delayed::PerformableMailer)
|
|
59
59
|
expect(job.payload_object.object.class).to eq(described_class)
|
|
60
|
-
expect(job.payload_object.object.instance_variable_get(
|
|
61
|
-
expect(job.payload_object.object.instance_variable_get(
|
|
60
|
+
expect(job.payload_object.object.instance_variable_get(:@mailer)).to eq(MyMailer)
|
|
61
|
+
expect(job.payload_object.object.instance_variable_get(:@params)).to eq(foo: 1, bar: 2)
|
|
62
62
|
expect(job.payload_object.method_name).to eq(:signup)
|
|
63
63
|
expect(job.payload_object.args).to eq(['john@example.com'])
|
|
64
64
|
expect(job.payload_object.kwargs).to eq(beta_tester: false)
|
data/spec/worker_spec.rb
CHANGED
|
@@ -153,7 +153,7 @@ describe Delayed::Worker do
|
|
|
153
153
|
expect(Delayed::Job).to receive(:reserve).exactly(10).times.and_raise(Exception)
|
|
154
154
|
worker = described_class.new
|
|
155
155
|
9.times { worker.work_off }
|
|
156
|
-
expect
|
|
156
|
+
expect { worker.work_off }.to raise_exception Delayed::FatalBackendError
|
|
157
157
|
end
|
|
158
158
|
|
|
159
159
|
it 'allows the backend to attempt recovery from reservation errors' 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: 0.
|
|
4
|
+
version: 0.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nathan Griffith
|
|
@@ -19,7 +19,7 @@ authors:
|
|
|
19
19
|
autorequire:
|
|
20
20
|
bindir: bin
|
|
21
21
|
cert_chain: []
|
|
22
|
-
date:
|
|
22
|
+
date: 2023-10-11 00:00:00.000000000 Z
|
|
23
23
|
dependencies:
|
|
24
24
|
- !ruby/object:Gem::Dependency
|
|
25
25
|
name: activerecord
|
|
@@ -49,174 +49,6 @@ dependencies:
|
|
|
49
49
|
- - ">="
|
|
50
50
|
- !ruby/object:Gem::Version
|
|
51
51
|
version: '0'
|
|
52
|
-
- !ruby/object:Gem::Dependency
|
|
53
|
-
name: actionmailer
|
|
54
|
-
requirement: !ruby/object:Gem::Requirement
|
|
55
|
-
requirements:
|
|
56
|
-
- - ">="
|
|
57
|
-
- !ruby/object:Gem::Version
|
|
58
|
-
version: '0'
|
|
59
|
-
type: :development
|
|
60
|
-
prerelease: false
|
|
61
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
62
|
-
requirements:
|
|
63
|
-
- - ">="
|
|
64
|
-
- !ruby/object:Gem::Version
|
|
65
|
-
version: '0'
|
|
66
|
-
- !ruby/object:Gem::Dependency
|
|
67
|
-
name: activejob
|
|
68
|
-
requirement: !ruby/object:Gem::Requirement
|
|
69
|
-
requirements:
|
|
70
|
-
- - ">="
|
|
71
|
-
- !ruby/object:Gem::Version
|
|
72
|
-
version: '0'
|
|
73
|
-
type: :development
|
|
74
|
-
prerelease: false
|
|
75
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
76
|
-
requirements:
|
|
77
|
-
- - ">="
|
|
78
|
-
- !ruby/object:Gem::Version
|
|
79
|
-
version: '0'
|
|
80
|
-
- !ruby/object:Gem::Dependency
|
|
81
|
-
name: activerecord
|
|
82
|
-
requirement: !ruby/object:Gem::Requirement
|
|
83
|
-
requirements:
|
|
84
|
-
- - ">="
|
|
85
|
-
- !ruby/object:Gem::Version
|
|
86
|
-
version: '0'
|
|
87
|
-
type: :development
|
|
88
|
-
prerelease: false
|
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
90
|
-
requirements:
|
|
91
|
-
- - ">="
|
|
92
|
-
- !ruby/object:Gem::Version
|
|
93
|
-
version: '0'
|
|
94
|
-
- !ruby/object:Gem::Dependency
|
|
95
|
-
name: appraisal
|
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
requirements:
|
|
98
|
-
- - ">="
|
|
99
|
-
- !ruby/object:Gem::Version
|
|
100
|
-
version: '0'
|
|
101
|
-
type: :development
|
|
102
|
-
prerelease: false
|
|
103
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
104
|
-
requirements:
|
|
105
|
-
- - ">="
|
|
106
|
-
- !ruby/object:Gem::Version
|
|
107
|
-
version: '0'
|
|
108
|
-
- !ruby/object:Gem::Dependency
|
|
109
|
-
name: betterlint
|
|
110
|
-
requirement: !ruby/object:Gem::Requirement
|
|
111
|
-
requirements:
|
|
112
|
-
- - ">="
|
|
113
|
-
- !ruby/object:Gem::Version
|
|
114
|
-
version: '0'
|
|
115
|
-
type: :development
|
|
116
|
-
prerelease: false
|
|
117
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
118
|
-
requirements:
|
|
119
|
-
- - ">="
|
|
120
|
-
- !ruby/object:Gem::Version
|
|
121
|
-
version: '0'
|
|
122
|
-
- !ruby/object:Gem::Dependency
|
|
123
|
-
name: mysql2
|
|
124
|
-
requirement: !ruby/object:Gem::Requirement
|
|
125
|
-
requirements:
|
|
126
|
-
- - ">="
|
|
127
|
-
- !ruby/object:Gem::Version
|
|
128
|
-
version: '0'
|
|
129
|
-
type: :development
|
|
130
|
-
prerelease: false
|
|
131
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
132
|
-
requirements:
|
|
133
|
-
- - ">="
|
|
134
|
-
- !ruby/object:Gem::Version
|
|
135
|
-
version: '0'
|
|
136
|
-
- !ruby/object:Gem::Dependency
|
|
137
|
-
name: pg
|
|
138
|
-
requirement: !ruby/object:Gem::Requirement
|
|
139
|
-
requirements:
|
|
140
|
-
- - ">="
|
|
141
|
-
- !ruby/object:Gem::Version
|
|
142
|
-
version: '0'
|
|
143
|
-
type: :development
|
|
144
|
-
prerelease: false
|
|
145
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
146
|
-
requirements:
|
|
147
|
-
- - ">="
|
|
148
|
-
- !ruby/object:Gem::Version
|
|
149
|
-
version: '0'
|
|
150
|
-
- !ruby/object:Gem::Dependency
|
|
151
|
-
name: rake
|
|
152
|
-
requirement: !ruby/object:Gem::Requirement
|
|
153
|
-
requirements:
|
|
154
|
-
- - ">="
|
|
155
|
-
- !ruby/object:Gem::Version
|
|
156
|
-
version: '0'
|
|
157
|
-
type: :development
|
|
158
|
-
prerelease: false
|
|
159
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
160
|
-
requirements:
|
|
161
|
-
- - ">="
|
|
162
|
-
- !ruby/object:Gem::Version
|
|
163
|
-
version: '0'
|
|
164
|
-
- !ruby/object:Gem::Dependency
|
|
165
|
-
name: rspec
|
|
166
|
-
requirement: !ruby/object:Gem::Requirement
|
|
167
|
-
requirements:
|
|
168
|
-
- - ">="
|
|
169
|
-
- !ruby/object:Gem::Version
|
|
170
|
-
version: '0'
|
|
171
|
-
type: :development
|
|
172
|
-
prerelease: false
|
|
173
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
174
|
-
requirements:
|
|
175
|
-
- - ">="
|
|
176
|
-
- !ruby/object:Gem::Version
|
|
177
|
-
version: '0'
|
|
178
|
-
- !ruby/object:Gem::Dependency
|
|
179
|
-
name: sqlite3
|
|
180
|
-
requirement: !ruby/object:Gem::Requirement
|
|
181
|
-
requirements:
|
|
182
|
-
- - ">="
|
|
183
|
-
- !ruby/object:Gem::Version
|
|
184
|
-
version: '0'
|
|
185
|
-
type: :development
|
|
186
|
-
prerelease: false
|
|
187
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
188
|
-
requirements:
|
|
189
|
-
- - ">="
|
|
190
|
-
- !ruby/object:Gem::Version
|
|
191
|
-
version: '0'
|
|
192
|
-
- !ruby/object:Gem::Dependency
|
|
193
|
-
name: timecop
|
|
194
|
-
requirement: !ruby/object:Gem::Requirement
|
|
195
|
-
requirements:
|
|
196
|
-
- - ">="
|
|
197
|
-
- !ruby/object:Gem::Version
|
|
198
|
-
version: '0'
|
|
199
|
-
type: :development
|
|
200
|
-
prerelease: false
|
|
201
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
202
|
-
requirements:
|
|
203
|
-
- - ">="
|
|
204
|
-
- !ruby/object:Gem::Version
|
|
205
|
-
version: '0'
|
|
206
|
-
- !ruby/object:Gem::Dependency
|
|
207
|
-
name: zeitwerk
|
|
208
|
-
requirement: !ruby/object:Gem::Requirement
|
|
209
|
-
requirements:
|
|
210
|
-
- - ">="
|
|
211
|
-
- !ruby/object:Gem::Version
|
|
212
|
-
version: '0'
|
|
213
|
-
type: :development
|
|
214
|
-
prerelease: false
|
|
215
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
216
|
-
requirements:
|
|
217
|
-
- - ">="
|
|
218
|
-
- !ruby/object:Gem::Version
|
|
219
|
-
version: '0'
|
|
220
52
|
description: |
|
|
221
53
|
Delayed is a multi-threaded, SQL-driven ActiveJob backend used at Betterment to process millions
|
|
222
54
|
of background jobs per day. It supports postgres, mysql, and sqlite, and is designed to be
|
|
@@ -306,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
306
138
|
- !ruby/object:Gem::Version
|
|
307
139
|
version: '0'
|
|
308
140
|
requirements: []
|
|
309
|
-
rubygems_version: 3.
|
|
141
|
+
rubygems_version: 3.3.5
|
|
310
142
|
signing_key:
|
|
311
143
|
specification_version: 4
|
|
312
144
|
summary: a multi-threaded, SQL-driven ActiveJob backend used at Betterment to process
|