27 lines
855 B
Ruby
27 lines
855 B
Ruby
|
require 'qx'
|
||
|
require 'delayed_job'
|
||
|
|
||
|
module DelayedJobHelper
|
||
|
|
||
|
# Create a serialized delayed job handler for use in inserting new delayed jobs with raw sql
|
||
|
# Be sure to wrap the handler in double quotes when inserting, not single
|
||
|
def self.create_handler(obj, method_name, args)
|
||
|
Delayed::PerformableMethod.new(obj, method_name, args).to_yaml.to_s
|
||
|
end
|
||
|
|
||
|
# Manually enqueue a job
|
||
|
def self.enqueue_job(obj, method_name, args, options={})
|
||
|
handler = Delayed::PerformableMethod.new(obj, method_name, args).to_yaml.to_s
|
||
|
Qx.insert_into(:delayed_jobs)
|
||
|
.values({
|
||
|
created_at: Time.current,
|
||
|
updated_at: Time.current,
|
||
|
priority: options[:priority] || 0,
|
||
|
attempts: 0,
|
||
|
handler: handler,
|
||
|
run_at: options[:run_at] || Time.current,
|
||
|
queue: options[:queue]
|
||
|
}).returning('*').execute
|
||
|
end
|
||
|
end
|