21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/active_scheduler/resque_wrapper.rb', line 21
def self.wrap(schedule)
schedule = HashWithIndifferentAccess.new(schedule)
schedule.each do |job, opts|
class_name = opts[:class] || job
next if class_name =~ /ActiveScheduler::ResqueWrapper/
klass = class_name.constantize
next unless klass <= ActiveJob::Base
queue = opts[:queue] || klass.queue_name
args = opts[:args]
named_args = opts[:named_args] || false
if !args && opts.has_key?(:arguments)
warn 'active_scheduler: [DEPRECATION] using the `arguments` key in ' \
'your resque schedule will soon be deprecated. Please revert to ' \
'the resque standard `args` key.'
args = opts[:arguments]
end
schedule[job] = {
class: 'ActiveScheduler::ResqueWrapper',
queue: queue,
args: [{
job_class: class_name,
queue_name: queue,
arguments: args,
}]
}
schedule[job][:args].first.merge!({ named_args: named_args }) if named_args
schedule[job][:description] = opts.fetch(:description, nil) if opts.fetch(:description, nil)
schedule[job][:every] = opts.fetch(:every, nil) if opts.fetch(:every, nil)
schedule[job][:cron] = opts.fetch(:cron, nil) if opts.fetch(:cron, nil)
schedule[job][:rails_env] = opts.fetch(:rails_env, nil) if opts.fetch(:rails_env, nil)
end
end
|