diff --git a/sidekiq_cluster/cli.rb b/sidekiq_cluster/cli.rb index 59f39003429edc968c09716325e5fa44bdffbb6c..c0940370d3b0c16fc614535132c93365dc4ca813 100644 --- a/sidekiq_cluster/cli.rb +++ b/sidekiq_cluster/cli.rb @@ -100,6 +100,11 @@ def run(argv = ARGV) unless @dryrun @logger.info("Starting cluster with #{queue_groups.length} processes") + + # Make sure we reset the metrics directory prior to: + # - starting a metrics server process + # - starting new workers + ::Prometheus::CleanupMultiprocDirService.new(@metrics_dir).execute end start_and_supervise_workers(queue_groups) @@ -118,11 +123,6 @@ def start_and_supervise_workers(queue_groups) return if @dryrun - # Make sure we reset the metrics directory prior to: - # - starting a metrics server process - # - starting new workers - ::Prometheus::CleanupMultiprocDirService.new(@metrics_dir).execute - ProcessManagement.write_pid(@pid) if @pid supervisor = SidekiqProcessSupervisor.instance( diff --git a/spec/commands/sidekiq_cluster/cli_spec.rb b/spec/commands/sidekiq_cluster/cli_spec.rb index e2fc907fd05df64b957dac0f5e10c9ccebda5dc7..bbf5f2bc4d99e134b84e3e0e18913ba7f9768f60 100644 --- a/spec/commands/sidekiq_cluster/cli_spec.rb +++ b/spec/commands/sidekiq_cluster/cli_spec.rb @@ -303,8 +303,9 @@ allow(Gitlab::SidekiqCluster).to receive(:start).and_return([]) end - it 'wipes the metrics directory' do - expect(metrics_cleanup_service).to receive(:execute) + it 'wipes the metrics directory before starting workers' do + expect(metrics_cleanup_service).to receive(:execute).ordered + expect(Gitlab::SidekiqCluster).to receive(:start).ordered.and_return([]) cli.run(%w(foo)) end