delayed 0.5.2 → 0.5.3

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: ac86a8d4576b55da967457fefbe6576b1cb2aa894d1015bd4e9883beb25a14cf
4
- data.tar.gz: 1db2668da101214ff8ad304931de54a5b348a54dee991eac6535fd117a14af90
3
+ metadata.gz: 1a6428c0614b28cf06d2921310bea48cc8e0bcc891a9772b7aed44238dbf1533
4
+ data.tar.gz: fa61f990945d382d21dd856170ce10dc52ecf44f2360a5be8ac9ec3463f9b5ac
5
5
  SHA512:
6
- metadata.gz: b07f547dbc8087465a79dbad0e75170d720d7f942b573dab337666f244ace82f2de08b52aee12e20038ec88594a103385de21abf3f439aabe4e2404bdf45d75a
7
- data.tar.gz: d2144160713def9d49398a99cb99e3def26cc5beea91d9f0ee832533ba91569b9c9642e00de44ce23eb4e85318c3bbaf34b02f4f478fb3dd85340d0eff09f627
6
+ metadata.gz: 46152e349a8b725978c3ef8a281789e288301e1d605b67fe4a8562733dac1742d5a9783a329c1569dce69910e73249b1134f8a5a1b19956ccb2b3a3a355dddd9
7
+ data.tar.gz: f6bd7af40fd73a4d4d9fe5c2af5eb307241d627a43ecf972cc7fb6510ba1a0d2ad0b2e065fdf935bb2bc3f03ffa912f91d2cead31cd01a2ab5aa6e70d446203a
@@ -14,7 +14,7 @@ module Delayed
14
14
  opts.merge!({ queue: job.queue_name, priority: job.priority }.compact)
15
15
  .merge!(job.provider_attributes || {})
16
16
 
17
- Delayed::Job.enqueue(JobWrapper.new(job.serialize), opts).tap do |dj|
17
+ Delayed::Job.enqueue(JobWrapper.new(job), opts).tap do |dj|
18
18
  job.provider_job_id = dj.id
19
19
  end
20
20
  end
@@ -4,8 +4,16 @@ module Delayed
4
4
 
5
5
  delegate_missing_to :job
6
6
 
7
- def initialize(job_data)
8
- @job_data = job_data
7
+ def initialize(job_or_data)
8
+ # During enqueue the job instance is passed in directly, saves us deserializing
9
+ # it to find out how to queue the job.
10
+ # During load from the db, we get a data hash passed in so deserialize lazily.
11
+ if job_or_data.is_a?(ActiveJob::Base)
12
+ @job = job_or_data
13
+ @job_data = job_or_data.serialize
14
+ else
15
+ @job_data = job_or_data
16
+ end
9
17
  end
10
18
 
11
19
  def display_name
@@ -34,7 +34,7 @@ module Delayed
34
34
  attr_reader :jobs
35
35
 
36
36
  def emit_metric!(metric)
37
- send("#{metric}_grouped").reverse_merge(default_results).each do |(priority, queue), value|
37
+ send(:"#{metric}_grouped").reverse_merge(default_results).each do |(priority, queue), value|
38
38
  ActiveSupport::Notifications.instrument(
39
39
  "delayed.job.#{metric}",
40
40
  default_tags.merge(priority: Priority.new(priority).to_s, queue: queue, value: value),
@@ -23,6 +23,16 @@ RSpec.describe Delayed::ActiveJobAdapter do
23
23
  ActiveJob::Base.queue_adapter = adapter_was
24
24
  end
25
25
 
26
+ it "does not invoke #deserialize during enqueue" do # rubocop:disable RSpec/NoExpectationExample
27
+ JobClass.include(Module.new do
28
+ def deserialize(*)
29
+ raise "uh oh, deserialize called during enqueue!"
30
+ end
31
+ end)
32
+
33
+ JobClass.perform_later
34
+ end
35
+
26
36
  it 'serializes a JobWrapper in the handler with expected fields' do
27
37
  Timecop.freeze('2023-01-20T18:52:29Z') do
28
38
  JobClass.perform_later
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.5.2
4
+ version: 0.5.3
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: 2023-10-19 00:00:00.000000000 Z
22
+ date: 2024-01-31 00:00:00.000000000 Z
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: activerecord