Class: RailsErrorDashboard::DiscordErrorNotificationJob
- Inherits:
-
ApplicationJob
- Object
- ActiveJob::Base
- ApplicationJob
- RailsErrorDashboard::DiscordErrorNotificationJob
- Defined in:
- app/jobs/rails_error_dashboard/discord_error_notification_job.rb
Overview
Job to send error notifications to Discord via webhook
Instance Method Summary collapse
Instance Method Details
#perform(error_log_id) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/jobs/rails_error_dashboard/discord_error_notification_job.rb', line 10 def perform(error_log_id) error_log = ErrorLog.find(error_log_id) webhook_url = RailsErrorDashboard.configuration.discord_webhook_url return unless webhook_url.present? payload = build_discord_payload(error_log) HTTParty.post( webhook_url, body: payload.to_json, headers: { "Content-Type" => "application/json" }, timeout: 10 # CRITICAL: 10 second timeout to prevent hanging ) rescue StandardError => e Rails.logger.error("[RailsErrorDashboard] Failed to send Discord notification: #{e.}") Rails.logger.error(e.backtrace&.first(5)&.join("\n")) if e.backtrace end |