Skip to content

Commit

Permalink
resque-scheduler でジョブ登録に失敗したときにログ出力が行えるように
Browse files Browse the repository at this point in the history
  • Loading branch information
naclaoyama committed Dec 23, 2024
1 parent 052ada0 commit 11267af
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
3 changes: 3 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## master
* resque-scheduler でジョブ登録に失敗したときにログ出力が行えるように

## 3.0.4
トップレベルにモジュール Coverage を定義して Ruby 標準クラス Coverage とバッティングしていたのを修正

Expand Down
36 changes: 36 additions & 0 deletions lib/bizside/resque.rb
Original file line number Diff line number Diff line change
Expand Up @@ -159,3 +159,39 @@ def hostname
Resque::Failure::Multiple.configure do |multi|
multi.classes = [Resque::Failure::Redis, Resque::Failure::LogOutput, Resque::Failure::JobAuditLog]
end

# resque-scheduler
if defined? Resque::Scheduler
module Bizside
module ResqueScheduler
class FailureHandler
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
end
end
end
Resque::Scheduler.failure_handler = Bizside::ResqueScheduler::FailureHandler
end

0 comments on commit 11267af

Please sign in to comment.