Sha256: d150da4ddc4a3239e06bdc40e2ba003d46028b8b8c4804e9974b183c6eebd71d

Contents?: true

Size: 731 Bytes

Versions: 14

Compression:

Stored size: 731 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.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

14 entries across 14 versions & 1 rubygems

Version Path
my_nagios-0.0.14 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.13 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.12 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.11 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.10 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.9 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.8 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.7 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.6 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.5 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.4 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.3 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.2 app/jobs/schedule_by_interval_job.rb
my_nagios-0.0.1 app/jobs/schedule_by_interval_job.rb