59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/que/job.rb', line 59
def enqueue(*args)
if args.last.is_a?(Hash)
options = args.pop
queue = options.delete(:queue) || '' if options.key?(:queue)
job_class = options.delete(:job_class)
run_at = options.delete(:run_at)
priority = options.delete(:priority)
args << options if options.any?
end
attrs = {:job_class => job_class || to_s, :args => args}
warn "@default_run_at in #{to_s} has been deprecated and will be removed in Que version 1.0.0. Please use @run_at instead." if @default_run_at
if t = run_at || @run_at && @run_at.call || @default_run_at && @default_run_at.call
attrs[:run_at] = t
end
warn "@default_priority in #{to_s} has been deprecated and will be removed in Que version 1.0.0. Please use @priority instead." if @default_priority
if p = priority || @priority || @default_priority
attrs[:priority] = p
end
if q = queue || @queue
attrs[:queue] = q
end
if Que.mode == :sync && !t
run(*attrs[:args])
else
values = Que.execute(:insert_job, attrs.values_at(:queue, :priority, :run_at, :job_class, :args)).first
Que.adapter.wake_worker_after_commit unless t
new(values)
end
end
|