arzumy
8/31/2010 - 4:59 AM

Only create delayed_job when in production.rb

# Cheapskate solution so that delayed_job only kicks off in production
# Useful when you can't pass the development delayed_job in heroku cost to client
Delayed::DelayProxy.class_eval do
  def method_missing(method, *args)
    performable = Delayed::PerformableMethod.new(@target, method.to_sym, args)
    if RAILS_ENV == "production"
      Delayed::Job.create({
        :payload_object => performable,
        :priority       => ::Delayed::Worker.default_priority
        }.merge(@options))
    else
      performable.perform
    end
  end
end