diff options
Diffstat (limited to 'config/initializers/sidekiq.rb')
-rw-r--r-- | config/initializers/sidekiq.rb | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 262ef1dea21..cef34425bf4 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -5,6 +5,16 @@ module SidekiqLogArguments end end +def load_cron_jobs! + Sidekiq::Cron::Job.load_from_hash! Gitlab::SidekiqConfig.cron_jobs + + Gitlab.ee do + Gitlab::Mirror.configure_cron_job! + + Gitlab::Geo.configure_cron_jobs! + end +end + def enable_reliable_fetch? return true unless Feature::FlipperFeature.table_exists? @@ -23,8 +33,6 @@ queues_config_hash[:namespace] = Gitlab::Redis::Queues::SIDEKIQ_NAMESPACE enable_json_logs = Gitlab.config.sidekiq.log_format == 'json' enable_sidekiq_memory_killer = ENV['SIDEKIQ_MEMORY_KILLER_MAX_RSS'].to_i.nonzero? -use_sidekiq_daemon_memory_killer = ENV.fetch("SIDEKIQ_DAEMON_MEMORY_KILLER", 1).to_i.nonzero? -use_sidekiq_legacy_memory_killer = !use_sidekiq_daemon_memory_killer Sidekiq.configure_server do |config| config.options[:strict] = false @@ -45,8 +53,7 @@ Sidekiq.configure_server do |config| config.server_middleware(&Gitlab::SidekiqMiddleware.server_configurator( metrics: Settings.monitoring.sidekiq_exporter, - arguments_logger: SidekiqLogArguments.enabled? && !enable_json_logs, - memory_killer: enable_sidekiq_memory_killer && use_sidekiq_legacy_memory_killer + arguments_logger: SidekiqLogArguments.enabled? && !enable_json_logs )) config.client_middleware(&Gitlab::SidekiqMiddleware.client_configurator) @@ -62,7 +69,7 @@ Sidekiq.configure_server do |config| # To cancel job, it requires `SIDEKIQ_MONITOR_WORKER=1` to enable notification channel Gitlab::SidekiqDaemon::Monitor.instance.start - Gitlab::SidekiqDaemon::MemoryKiller.instance.start if enable_sidekiq_memory_killer && use_sidekiq_daemon_memory_killer + Gitlab::SidekiqDaemon::MemoryKiller.instance.start if enable_sidekiq_memory_killer first_sidekiq_worker = !ENV['SIDEKIQ_WORKER_ID'] || ENV['SIDEKIQ_WORKER_ID'] == '0' health_checks = Settings.monitoring.sidekiq_health_checks @@ -81,30 +88,10 @@ Sidekiq.configure_server do |config| Sidekiq::ReliableFetch.setup_reliable_fetch!(config) end - Gitlab.config.load_dynamic_cron_schedules! - - # Sidekiq-cron: load recurring jobs from gitlab.yml - # UGLY Hack to get nested hash from settingslogic - cron_jobs = Gitlab::Json.parse(Gitlab.config.cron_jobs.to_json) - # UGLY hack: Settingslogic doesn't allow 'class' key - cron_jobs_required_keys = %w(job_class cron) - cron_jobs.each do |k, v| - if cron_jobs[k] && cron_jobs_required_keys.all? { |s| cron_jobs[k].key?(s) } - cron_jobs[k]['class'] = cron_jobs[k].delete('job_class') - else - cron_jobs.delete(k) - Gitlab::AppLogger.error("Invalid cron_jobs config key: '#{k}'. Check your gitlab config file.") - end - end - Sidekiq::Cron::Job.load_from_hash! cron_jobs - Gitlab::SidekiqVersioning.install! - Gitlab.ee do - Gitlab::Mirror.configure_cron_job! - - Gitlab::Geo.configure_cron_jobs! - end + config.options[:cron_poll_interval] = Gitlab.config.cron_jobs.poll_interval + load_cron_jobs! # Avoid autoload issue such as 'Mail::Parsers::AddressStruct' # https://github.com/mikel/mail/issues/912#issuecomment-214850355 @@ -127,4 +114,3 @@ end Sidekiq::Scheduled::Poller.prepend Gitlab::Patch::SidekiqPoller Sidekiq::Cron::Poller.prepend Gitlab::Patch::SidekiqPoller -Sidekiq::Cron::Poller.prepend Gitlab::Patch::SidekiqCronPoller |