class Resque::Failure::JobAuditLog

Public Instance Methods

save() click to toggle source
# File lib/bizside/resque.rb, line 105
def save
  info = build_loginfo
  return info if Bizside.rails_env&.test?
  
  logger.record(info)
  
  info
end

Private Instance Methods

build_loginfo() click to toggle source
# File lib/bizside/resque.rb, line 120
def build_loginfo
  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,
    queue: queue,
    worker: worker.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.
  }
  info
end
hostname() click to toggle source

ホスト名を取得。

下記理由から hostname(1) を使用:

  • job 実行環境では環境変数 HOSTNAME がセットされていないケースがある (例: 通常の god 起動の場合。他方、container 起動の場合は HOSTNAME がセットされている模様)。

  • hostname(1) は Linux Standard Base 共通コマンドのため必ず存在する。 @see refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Common/LSB-Common/rcommands.html

# File lib/bizside/resque.rb, line 145
def hostname
  @hostname ||= (`hostname`.chomp rescue '(unknown)')
end
logger() click to toggle source
# File lib/bizside/resque.rb, line 116
def logger
  @logger ||= Bizside::Audit::JobLogger.logger
end