class Sidekiq::JobAlert::Notifier
Public Class Methods
new(config)
click to toggle source
# File lib/sidekiq/job_alert/notifier.rb, line 9 def initialize(config) @slack_config = YAML.load_file(config) @message = '' end
Public Instance Methods
call()
click to toggle source
# File lib/sidekiq/job_alert/notifier.rb, line 14 def call @message += make_dead_job_message @message += make_all_job_message('alert_total_waiting_jobs') keys = @slack_config[:alert_each_waiting_job].keys keys.delete(:message) keys.each do |key| @message += make_job_message('alert_each_waiting_job', key) end return if @message.empty? @message += @slack_config[:sidekiq_url] slack_notifier.ping(@message) end
Private Instance Methods
make_all_job_message(type)
click to toggle source
# File lib/sidekiq/job_alert/notifier.rb, line 36 def make_all_job_message(type) cnt = Sidekiq::JobAlert::Queue.all_job_cnt limit = @slack_config[type.to_sym][:all][:limit].to_i cnt > limit ? make_message(type, cnt) : '' end
make_dead_job_message()
click to toggle source
# File lib/sidekiq/job_alert/notifier.rb, line 31 def make_dead_job_message cnt = Sidekiq::JobAlert::Queue.dead_job_cnt cnt.positive? ? make_message('alert_dead_jobs', cnt) : '' end
make_job_message(type, queue_name)
click to toggle source
# File lib/sidekiq/job_alert/notifier.rb, line 42 def make_job_message(type, queue_name) cnt = Sidekiq::JobAlert::Queue.queue_job_cnt(queue_name) limit = @slack_config[type.to_sym][queue_name.to_sym][:limit].to_i cnt > limit ? make_message(type, cnt, queue_name.to_s) : '' end
make_message(type, job_counter, queue_name = nil)
click to toggle source
# File lib/sidekiq/job_alert/notifier.rb, line 48 def make_message(type, job_counter, queue_name = nil) format( @slack_config[type.to_sym][:message], job_counter: job_counter, queue_name: queue_name ) end
slack_notifier()
click to toggle source
# File lib/sidekiq/job_alert/notifier.rb, line 56 def slack_notifier Slack::Notifier.new( @slack_config[:webhook_url], username: @slack_config[:username], channel: @slack_config[:channel] ) end