From 0bc10143315fae2e4e432c7c9d150a3964b29f79 Mon Sep 17 00:00:00 2001 From: Keenan Brock Date: Wed, 9 Oct 2019 20:46:38 -0400 Subject: [PATCH 1/2] simplify schedule_every case when first_in is the interval --- app/models/miq_schedule_worker/runner.rb | 30 ++++++++++-------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/app/models/miq_schedule_worker/runner.rb b/app/models/miq_schedule_worker/runner.rb index 1b9c229b3ad..7ae923c250e 100644 --- a/app/models/miq_schedule_worker/runner.rb +++ b/app/models/miq_schedule_worker/runner.rb @@ -79,7 +79,6 @@ def schedules_for_all_roles scheduler.schedule_every( every, - :first_in => every, :tags => [:vmdb_appliance_log_config, schedule_category] ) { enqueue(:vmdb_appliance_log_config) } @@ -87,7 +86,6 @@ def schedules_for_all_roles every = worker_settings[:log_database_statistics_interval] scheduler.schedule_every( every, - :first_in => every, :tags => [:log_all_database_statistics, schedule_category] ) { enqueue(:vmdb_database_log_all_database_statistics) } @@ -95,7 +93,6 @@ def schedules_for_all_roles every = worker_settings[:server_stats_interval] scheduler.schedule_every( every, - :first_in => every, :tags => [:status_update, schedule_category] ) { enqueue(:miq_server_status_update) } @@ -103,7 +100,6 @@ def schedules_for_all_roles every = worker_settings[:server_log_stats_interval] scheduler.schedule_every( every, - :first_in => every, :tags => [:log_status, schedule_category] ) { enqueue(:miq_server_worker_log_status) } @@ -134,27 +130,27 @@ def schedules_for_scheduler_role scheduler = scheduler_for(:scheduler) # Schedule - Check for timed out jobs every = worker_settings[:job_timeout_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:job_check_jobs_for_timeout) end # Schedule - Check for retired items and start retirement # TODO: remove redundant settings in follow-up pr every = [worker_settings[:service_retired_interval], worker_settings[:vm_retired_interval], worker_settings[:orchestration_stack_retired_interval]].min - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:retirement_check) end # Schedule - Periodic validation of authentications every = worker_settings[:authentication_check_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do # Queue authentication checks for CIs with credentials enqueue(:host_authentication_check_schedule) enqueue(:ems_authentication_check_schedule) end every = worker_settings[:drift_state_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:drift_state_purge_timer) end @@ -169,7 +165,7 @@ def schedules_for_scheduler_role # Schedule - Check for rogue EVM snapshots every = worker_settings[:evm_snapshot_interval] job_not_found_delay = worker_settings[:evm_snapshot_delete_delay_for_job_not_found] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue([:job_check_for_evm_snapshots, job_not_found_delay]) end @@ -193,37 +189,37 @@ def schedules_for_scheduler_role # Schedule - Prune old reports Timer every = worker_settings[:report_result_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:miq_report_result_purge_timer) end every = worker_settings[:container_entities_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:archived_entities_purge_timer) end every = worker_settings[:binary_blob_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:binary_blob_purge_timer) end every = worker_settings[:notifications_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:notification_purge_timer) end every = worker_settings[:task_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:task_purge_timer) end every = worker_settings[:compliance_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:compliance_purge_timer) end every = worker_settings[:vim_performance_states_purge_interval] - scheduler.schedule_every(every, :first_in => every) do + scheduler.schedule_every(every) do enqueue(:vim_performance_states_purge_timer) end @@ -240,7 +236,7 @@ def schedules_for_scheduler_role ) { enqueue(:storage_scan_timer) } schedule_settings_for_ems_refresh.each do |klass, local_every| - scheduler.schedule_every(local_every, :first_in => local_every) do + scheduler.schedule_every(local_every) do enqueue([:ems_refresh_timer, klass]) end end From cf245b3dd436cdf56617103278145c6f0e71be2c Mon Sep 17 00:00:00 2001 From: Keenan Brock Date: Wed, 9 Oct 2019 20:59:24 -0400 Subject: [PATCH 2/2] condense useless 'every' variables in schedule --- app/models/miq_schedule_worker/runner.rb | 76 ++++++++---------------- 1 file changed, 25 insertions(+), 51 deletions(-) diff --git a/app/models/miq_schedule_worker/runner.rb b/app/models/miq_schedule_worker/runner.rb index 7ae923c250e..fdaa2ad7eb5 100644 --- a/app/models/miq_schedule_worker/runner.rb +++ b/app/models/miq_schedule_worker/runner.rb @@ -75,47 +75,40 @@ def schedules_for_all_roles schedule_category = :schedules_for_all_roles # Schedule - Log current system configuration - every = worker_settings[:log_active_configuration_interval] - scheduler.schedule_every( - every, + worker_settings[:log_active_configuration_interval], :tags => [:vmdb_appliance_log_config, schedule_category] ) { enqueue(:vmdb_appliance_log_config) } # Schedule - Log current database statistics and bloat - every = worker_settings[:log_database_statistics_interval] scheduler.schedule_every( - every, + worker_settings[:log_database_statistics_interval], :tags => [:log_all_database_statistics, schedule_category] ) { enqueue(:vmdb_database_log_all_database_statistics) } # Schedule - Update Server Statistics - every = worker_settings[:server_stats_interval] scheduler.schedule_every( - every, + worker_settings[:server_stats_interval], :tags => [:status_update, schedule_category] ) { enqueue(:miq_server_status_update) } # Schedule - Log Server and Worker Statistics - every = worker_settings[:server_log_stats_interval] scheduler.schedule_every( - every, + worker_settings[:server_log_stats_interval], :tags => [:log_status, schedule_category] ) { enqueue(:miq_server_worker_log_status) } # Schedule - Periodic logging of database statistics - interval = worker_settings[:db_diagnostics_interval] scheduler.schedule_every( - interval, + worker_settings[:db_diagnostics_interval], :first_in => 1.minute, :tags => [:log_statistics, schedule_category] ) { enqueue(:vmdb_database_connection_log_statistics) } # Schedule - Periodic check for updates on appliances only if MiqEnvironment::Command.is_appliance? - interval = worker_settings[:yum_update_check] scheduler.schedule_every( - interval, + worker_settings[:yum_update_check], :first_in => 1.minute, :tags => [:server_updates, schedule_category] ) { enqueue(:miq_server_queue_update_registration_status) } @@ -129,8 +122,7 @@ def schedules_for_scheduler_role return unless schedule_enabled?(:scheduler) scheduler = scheduler_for(:scheduler) # Schedule - Check for timed out jobs - every = worker_settings[:job_timeout_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:job_timeout_interval]) do enqueue(:job_check_jobs_for_timeout) end @@ -142,15 +134,13 @@ def schedules_for_scheduler_role end # Schedule - Periodic validation of authentications - every = worker_settings[:authentication_check_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:authentication_check_interval]) do # Queue authentication checks for CIs with credentials enqueue(:host_authentication_check_schedule) enqueue(:ems_authentication_check_schedule) end - every = worker_settings[:drift_state_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:drift_state_purge_interval]) do enqueue(:drift_state_purge_timer) end @@ -163,9 +153,8 @@ def schedules_for_scheduler_role end # Schedule - Check for rogue EVM snapshots - every = worker_settings[:evm_snapshot_interval] job_not_found_delay = worker_settings[:evm_snapshot_delete_delay_for_job_not_found] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:evm_snapshot_interval]) do enqueue([:job_check_for_evm_snapshots, job_not_found_delay]) end @@ -188,38 +177,31 @@ def schedules_for_scheduler_role end # Schedule - Prune old reports Timer - every = worker_settings[:report_result_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:report_result_purge_interval]) do enqueue(:miq_report_result_purge_timer) end - every = worker_settings[:container_entities_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:container_entities_purge_interval]) do enqueue(:archived_entities_purge_timer) end - every = worker_settings[:binary_blob_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:binary_blob_purge_interval]) do enqueue(:binary_blob_purge_timer) end - every = worker_settings[:notifications_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:notifications_purge_interval]) do enqueue(:notification_purge_timer) end - every = worker_settings[:task_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:task_purge_interval]) do enqueue(:task_purge_timer) end - every = worker_settings[:compliance_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:compliance_purge_interval]) do enqueue(:compliance_purge_timer) end - every = worker_settings[:vim_performance_states_purge_interval] - scheduler.schedule_every(every) do + scheduler.schedule_every(worker_settings[:vim_performance_states_purge_interval]) do enqueue(:vim_performance_states_purge_timer) end @@ -308,19 +290,15 @@ def schedules_for_database_operations_role :tags => %i(database_operations database_maintenance_vacuum_schedule), ) { enqueue(:database_maintenance_vacuum_timer) } - every = worker_settings[:performance_realtime_purging_interval] - first_in = worker_settings[:performance_realtime_purging_start_delay] scheduler.schedule_every( - every, - :first_in => first_in, + worker_settings[:performance_realtime_purging_interval], + :first_in => worker_settings[:performance_realtime_purging_start_delay], :tags => [:database_operations, :purge_realtime_timer] ) { enqueue(:metric_purging_purge_realtime_timer) } - every = worker_settings[:performance_rollup_purging_interval] - first_in = worker_settings[:performance_rollup_purging_start_delay] scheduler.schedule_every( - every, - :first_in => first_in, + worker_settings[:performance_rollup_purging_interval], + :first_in => worker_settings[:performance_rollup_purging_start_delay], :tags => [:database_operations, :purge_rollup_timer] ) { enqueue(:metric_purging_purge_rollup_timer) } @@ -332,11 +310,9 @@ def schedules_for_ems_metrics_coordinator_role return unless schedule_enabled?("ems_metrics_coordinator") scheduler = scheduler_for(:ems_metrics_coordinator) # Schedule - Performance Collection and Performance Purging - every = worker_settings[:performance_collection_interval] - first_in = worker_settings[:performance_collection_start_delay] scheduler.schedule_every( - every, - :first_in => first_in, + worker_settings[:performance_collection_interval], + :first_in => worker_settings[:performance_collection_start_delay], :tags => [:ems_metrics_coordinator, :perf_capture_timer] ) { enqueue(:metric_capture_perf_capture_timer) } @@ -348,17 +324,15 @@ def schedules_for_event_role return unless schedule_enabled?(:event) scheduler = scheduler_for(:event) # Schedule - Event Purging - interval = worker_settings[:event_streams_purge_interval] scheduler.schedule_every( - interval, + worker_settings[:event_streams_purge_interval], :first_in => "300s", :tags => [:event_stream, :purge_schedule] ) { enqueue(:event_stream_purge_timer) } # Schedule - Policy Event Purging - interval = worker_settings[:policy_events_purge_interval] scheduler.schedule_every( - interval, + worker_settings[:policy_events_purge_interval], :first_in => "300s", :tags => [:policy_event, :purge_schedule] ) { enqueue(:policy_event_purge_timer) }