2014-05-19 14:09:45 -04:00
|
|
|
require 'que'
|
|
|
|
|
|
|
|
module ActiveJob
|
|
|
|
module QueueAdapters
|
|
|
|
class QueAdapter
|
|
|
|
class << self
|
2014-05-20 19:07:45 -04:00
|
|
|
def enqueue(job, *args)
|
2014-07-29 05:00:26 -04:00
|
|
|
JobWrapper.enqueue job.name, *args, queue: job.queue_name
|
2014-05-19 14:09:45 -04:00
|
|
|
end
|
2014-05-20 11:44:00 -04:00
|
|
|
|
2014-05-20 19:07:45 -04:00
|
|
|
def enqueue_at(job, timestamp, *args)
|
2014-08-21 00:19:40 -04:00
|
|
|
JobWrapper.enqueue job.name, *args, queue: job.queue_name, run_at: Time.at(timestamp)
|
2014-05-20 11:44:00 -04:00
|
|
|
end
|
2014-05-19 14:09:45 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
class JobWrapper < Que::Job
|
2014-07-29 05:00:26 -04:00
|
|
|
def run(job_name, *args)
|
2014-08-18 09:09:04 -04:00
|
|
|
job_name.constantize.new.execute(*args)
|
2014-05-19 14:09:45 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|