Class: Bizside::ResqueScheduler::FailureHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/bizside/resque.rb

Class Method Summary collapse

Class Method Details

.on_enqueue_failure(payload, exception) ⇒ Object



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/bizside/resque.rb', line 168

def self.on_enqueue_failure(payload, exception)
  ::Resque::Scheduler::FailureHandler.on_enqueue_failure(payload, exception)

  return if Bizside.rails_env&.test?

  ::Bizside.logger.error [
    "[FATAL] Resque::Scheduler",
    "#{payload}",
    "#{exception.class} #{exception.to_s}",
    "#{Array(exception.backtrace).join("\n")}"
  ].join("\n")

  @hostname ||= (`hostname`.chomp rescue '(unknown)')
  info = {
    time: Time.now.strftime('%Y-%m-%dT%H:%M:%S.%3N%z'),
    add_on_name: Bizside.config.add_on_name,
    server_address: @hostname,
    class: payload['class'],
    args: payload['args'].to_s,
    exception: exception.class,
    exception_message:  exception.to_s,
    exception_backtrace: Array(exception.backtrace)[0..10].join("\n") # Get only the top 10 because there are many traces.
  }
  ::Bizside::Audit::JobLogger.logger.record(info)
end