Class: DelayedCron::Jobs::DelayedJob

Inherits:
Struct
  • Object
show all
Defined in:
lib/delayed_cron/jobs/delayed_job.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#klassObject

Returns the value of attribute klass

Returns:

  • (Object)

    the current value of klass



5
6
7
# File 'lib/delayed_cron/jobs/delayed_job.rb', line 5

def klass
  @klass
end

#method_nameObject

Returns the value of attribute method_name

Returns:

  • (Object)

    the current value of method_name



5
6
7
# File 'lib/delayed_cron/jobs/delayed_job.rb', line 5

def method_name
  @method_name
end

#optionsObject

Returns the value of attribute options

Returns:

  • (Object)

    the current value of options



5
6
7
# File 'lib/delayed_cron/jobs/delayed_job.rb', line 5

def options
  @options
end

Class Method Details

.enqueue_delayed_cron(klass, method_name, options) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/delayed_cron/jobs/delayed_job.rb', line 7

def self.enqueue_delayed_cron(klass, method_name, options)
  unless scheduled?(klass, method_name)
    options.symbolize_keys!
    ::Delayed::Job.enqueue(
      :payload_object => new(klass, method_name, options),
      :run_at => Time.now + options[:interval],
      :queue => :cron_job
    )
  end
end

.scheduled?(klass, method_name) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
24
25
# File 'lib/delayed_cron/jobs/delayed_job.rb', line 18

def self.scheduled?(klass, method_name)
  scheduled = false
  ::Delayed::Job.where(:queue => :cron_job).each do |job|
    obj = YAML.load_dj(job.handler)
    scheduled = true if obj["klass"] == klass && obj["method_name"] == method_name
  end
  scheduled
end

Instance Method Details

#perform(klass, method_name, options) ⇒ Object



27
28
29
# File 'lib/delayed_cron/jobs/delayed_job.rb', line 27

def perform(klass, method_name, options)
  DelayedCron.process_job(klass, method_name, options)
end