Sha256: df9b5ab40a32164f2e613959128ed6ef158bfd0898e7f6e09167d182ee7675e5

Contents?: true

Size: 739 Bytes

Versions: 4

Compression:

Stored size: 739 Bytes

Contents

class ScheduleByIntervalJob
  include Sidekiq::Worker

  sidekiq_options queue: 'my_nagios_monitoring'

  def perform(options, one_by_one = false)

    # Run each Check separately (new ssh connection for each check even common host)
    if one_by_one
      MyNagios::Check.where(interval: options['interval']).each do |check|
        MonitoringJob.perform_async(check)
      end

      return
    end

    # Optimized variant, group checks, run all necessary checks with one ssh connection
    MyNagios::Check.enabled.where(interval: options['interval']).group_by{|check| { host: check.host, user: check.user, pem_key: check.pem_key } }.each do |config, checks|
      MonitoringJob.perform_async(checks.map(&:id), config)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
my_nagios-0.0.18 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.17 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.16 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.15 app/jobs/schedule_by_interval_job.rb