http requests). Revert "retry less" This reverts commit7784156e3b. Revert "supress resque retries" This reverts commit80cdcd4edd. Revert "Retry federation if remote pod is down" This reverts commitbcbc86e502. Conflicts: app/models/jobs/http_multi.rb
52 lines
1.7 KiB
Ruby
52 lines
1.7 KiB
Ruby
module ResqueJobLogging
|
|
def around_perform_log_job(*args)
|
|
Rails.logger.auto_flushing=1
|
|
log_string = "event=resque_job job=#{self} "
|
|
error = nil
|
|
time = Benchmark.realtime{
|
|
begin
|
|
yield
|
|
rescue Exception => e
|
|
error = e
|
|
end
|
|
}*1000
|
|
|
|
log_string += "ms=#{time} "
|
|
args.each_with_index{|arg,idx| log_string += "arg#{idx.succ}=\"#{arg.to_s[0..30]}\" "}
|
|
|
|
if error
|
|
log_string += "status=error "
|
|
log_string << "error_class=#{error.class} error_message='#{error.message}' "
|
|
log_string << "orig_error_message='#{error.original_error.message}'" if error.respond_to?(:original_error)
|
|
log_string << "annotated_source='#{error.annoted_source_code.to_s}' " if error.respond_to?(:annoted_source_code)
|
|
backtrace = application_trace(error)
|
|
log_string << "app_backtrace='#{backtrace.join(";")}' "
|
|
notify_hoptoad(error, args) if AppConfig[:hoptoad_api_key].present?
|
|
else
|
|
log_string += "status=complete "
|
|
end
|
|
|
|
Rails.logger.info(log_string)
|
|
raise error if error
|
|
end
|
|
|
|
def notify_hoptoad(error, job_arguments)
|
|
HoptoadNotifier.notify(
|
|
:error_class => error.class,
|
|
:error_message => error.message,
|
|
:backtrace => error.backtrace,
|
|
:parameters => {
|
|
:job_class => self.name,
|
|
:arguments => job_arguments.map!{|a| a.to_s[0..30]}.join(', '),
|
|
:controller => "Resque",
|
|
:action => self.name
|
|
}
|
|
) if Rails.env.production?
|
|
end
|
|
|
|
def application_trace(error) #copied from ActionDispatch::ShowExceptions
|
|
defined?(Rails) && Rails.respond_to?(:backtrace_cleaner) ?
|
|
Rails.backtrace_cleaner.clean(error.backtrace, :silent) :
|
|
error.backtrace
|
|
end
|
|
end
|