Class: GovernorBackground::Handler

Inherits:
Object
  • Object
show all
Defined in:
lib/governor_background/handler.rb

Class Method Summary collapse

Class Method Details

.run_in_background(object, method) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/governor_background/handler.rb', line 4

def run_in_background(object, method)
  job = if delayed_job?
    Delayed::Job.new(object, method, ::Delayed::Job.enqueue(Delayed::Performer.new(object, method)))
  elsif resque?
    resource_key, id = object.class.name.tableize.to_sym, object.id
    if resque_with_status?
      require File.expand_path('../resque/performer_with_state',  __FILE__)
      Resque::Job.new(object, method, Resque::PerformerWithState.create(:resource => resource_key, :id => id, :method_name => method))
    else
      ::Resque.enqueue(Resque::Performer, resource_key, id, method)
      nil # not much use in holding on to state if we can't track it
    end
  end
  JobManager.add(job) unless job.blank?
end