delayed 0.4.0 → 0.5.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: ec0bc05440d0ea5392480d83c4a3295aecfcad71a47fc48b16de19d356387e8d
4
- data.tar.gz: 2a9b09c4a77f058e8fe322f9b80da8aed4b909b20e3ebbcc33da1277435407d0
3
+ metadata.gz: 6a1cf38e09aa1495cf90b772f2ea4168497b2f1d819af54f1bf23644e591f021
4
+ data.tar.gz: 992f2c890116bb021368b4317d3d65aa37ac5c72627dc4d78e1815bb70b16fdf
5
5
  SHA512:
6
- metadata.gz: 183b8ad1b96cbe2ce987a6a2faa449b90963a898ae2ffccb7f99eacbeb94be5cedae452bc2ed884414e6cfe2a8169481192d9269e2111b80b3be2d805a5cac83
7
- data.tar.gz: 75ad14cf19505ee4b0152797cbee705dbe712939a5e5a0f3bd960a9ddad2c25756e0aedbc8745e70e40d5b634bdf96ef5d175c81f88a86308b524a1f97b2356c
6
+ metadata.gz: 6f24864e443ddf7f964be5bdf1f25fb1be789f8f19801b31a922fd4c18884bef412255c37676fa57813e96cca0a29299dfe620265ce6ff515351af70dd632ceb
7
+ data.tar.gz: ad160c352e49f6c5e75ddd1eea94bba65998bb291e8bb6a8c9815ec8387e1871f4acb7cd854abaaa450641598e70b05779e872ba0de8c992c3bf47401f5a1b9a
@@ -56,6 +56,10 @@ module Delayed
56
56
  end
57
57
  end
58
58
 
59
+ def encode_with(coder)
60
+ coder['job_data'] = @job_data
61
+ end
62
+
59
63
  private
60
64
 
61
65
  def job
@@ -23,6 +23,40 @@ 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:29Z'\n" if ActiveJob::VERSION::MAJOR >= 6),
46
+ ].compact
47
+ end
48
+ end
49
+
50
+ it 'deserializes even if the underlying job class is not defined' do
51
+ JobClass.perform_later
52
+
53
+ Delayed::Job.last.tap do |dj|
54
+ dj.handler = dj.handler.gsub('JobClass', 'MissingJobClass')
55
+ expect { dj.payload_object }.not_to raise_error
56
+ expect { dj.payload_object.job_id }.to raise_error(NameError, 'uninitialized constant MissingJobClass')
57
+ end
58
+ end
59
+
26
60
  describe '.set' do
27
61
  it 'supports priority as an integer' do
28
62
  JobClass.set(priority: 43).perform_later
@@ -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('@mailer')).to eq(MyMailer)
61
- expect(job.payload_object.object.instance_variable_get('@params')).to eq(foo: 1, bar: 2)
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(lambda { worker.work_off }).to raise_exception Delayed::FatalBackendError
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.0
4
+ version: 0.5.0
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: 2021-11-30 00:00:00.000000000 Z
22
+ date: 2023-01-20 00:00:00.000000000 Z
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: activerecord
@@ -306,7 +306,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
306
306
  - !ruby/object:Gem::Version
307
307
  version: '0'
308
308
  requirements: []
309
- rubygems_version: 3.1.6
309
+ rubygems_version: 3.3.5
310
310
  signing_key:
311
311
  specification_version: 4
312
312
  summary: a multi-threaded, SQL-driven ActiveJob backend used at Betterment to process