delayed 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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