module SidekiqPublisher::ReportUnpublishedCount

Public Class Methods

call(instrumenter: Instrumenter.new) click to toggle source
# File lib/sidekiq_publisher/report_unpublished_count.rb, line 8
def self.call(instrumenter: Instrumenter.new)
  instrumenter.instrument("unpublished.reporter",
                          unpublished_count: SidekiqPublisher::Job.unpublished.count)
rescue ActiveRecord::StatementInvalid, PG::UnableToSend, PG::ConnectionBad => e
  ActiveRecord::Base.clear_active_connections! if db_connection_error?(e)
  raise
end

Private Class Methods

db_connection_error?(error) click to toggle source
# File lib/sidekiq_publisher/report_unpublished_count.rb, line 16
def self.db_connection_error?(error)
  cause = error.is_a?(ActiveRecord::StatementInvalid) ? error.cause : error
  cause.is_a?(PG::UnableToSend) || cause.is_a?(PG::ConnectionBad)
end