Class: ActiveScheduler::ResqueWrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/active_scheduler/resque_wrapper.rb

Class Method Summary collapse

Class Method Details

.perform(job_data) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/active_scheduler/resque_wrapper.rb', line 4

def self.perform(job_data)
  klass = Object.const_get job_data['job_class']

  if job_data.has_key? 'arguments'
    klass.perform_later *job_data['arguments']
  else
    klass.perform_later
  end
end

.wrap(schedule) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/active_scheduler/resque_wrapper.rb', line 14

def self.wrap(schedule)
  schedule = HashWithIndifferentAccess.new(schedule)

  schedule.each do |job, opts|
    next if opts[:class] =~ /ActiveScheduler::ResqueWrapper/

    queue = opts[:queue] || 'default'

    schedule[job] = {
      class:        'ActiveScheduler::ResqueWrapper',
      queue:        queue,
      args: [{
        job_class:  opts[:class],
        queue_name: queue,
        arguments:  opts[:arguments]
      }]
    }

    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)
  end
end