From dd8e859829bfcfd8cb0287ce804055b827a35af1 Mon Sep 17 00:00:00 2001
From: Kevin Deisz <kevin.deisz@gmail.com>
Date: Sun, 26 Apr 2015 13:05:08 -0400
Subject: Get provider_job_id from DelayedJob

When queueing with DelayedJob, get the id of the job instance and report
it back to ActiveJob as provider_job_id.
---
 activejob/lib/active_job/core.rb                               | 3 +++
 activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb | 8 ++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

(limited to 'activejob/lib')

diff --git a/activejob/lib/active_job/core.rb b/activejob/lib/active_job/core.rb
index acdfcdc791..0528572cd0 100644
--- a/activejob/lib/active_job/core.rb
+++ b/activejob/lib/active_job/core.rb
@@ -17,6 +17,9 @@ module ActiveJob
 
       # Queue in which the job will reside.
       attr_writer :queue_name
+
+      # ID optionally provided by adapter
+      attr_accessor :provider_job_id
     end
 
     # These methods will be included into any Active Job object, adding
diff --git a/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb b/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb
index 852a6ee326..ac83da2b9c 100644
--- a/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb
+++ b/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb
@@ -14,11 +14,15 @@ module ActiveJob
     #   Rails.application.config.active_job.queue_adapter = :delayed_job
     class DelayedJobAdapter
       def enqueue(job) #:nodoc:
-        Delayed::Job.enqueue(JobWrapper.new(job.serialize), queue: job.queue_name)
+        delayed_job = Delayed::Job.enqueue(JobWrapper.new(job.serialize), queue: job.queue_name)
+        job.provider_job_id = delayed_job.id
+        delayed_job
       end
 
       def enqueue_at(job, timestamp) #:nodoc:
-        Delayed::Job.enqueue(JobWrapper.new(job.serialize), queue: job.queue_name, run_at: Time.at(timestamp))
+        delayed_job = Delayed::Job.enqueue(JobWrapper.new(job.serialize), queue: job.queue_name, run_at: Time.at(timestamp))
+        job.provider_job_id = delayed_job.id
+        delayed_job
       end
 
       class JobWrapper #:nodoc:
-- 
cgit v1.2.3