From 415d94a166383f4835de3ae13f18c527aa85c29b Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 3 May 2023 10:31:40 +0200 Subject: [PATCH] Improve automatic post cleanup worker performances (#24785) --- .../accounts_statuses_cleanup_scheduler_spec.rb | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb index d953cc39d4..a9e8682cb7 100644 --- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb +++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb @@ -70,7 +70,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do end end - describe '#get_budget' do + describe '#compute_budget' do context 'on a single thread' do let(:process_set_stub) { [ { 'concurrency' => 1, 'queues' => ['push', 'default'] } ] } @@ -112,6 +112,19 @@ describe Scheduler::AccountsStatusesCleanupScheduler do it 'eventually deletes every deletable toot' do expect { subject.perform; subject.perform; subject.perform; subject.perform }.to change { Status.count }.by(-20) end + + context 'when given a big budget' do + let(:process_set_stub) { [{ 'concurrency' => 400, 'queues' => %w(push default) }] } + + before do + stub_const 'Scheduler::AccountsStatusesCleanupScheduler::MAX_BUDGET', 400 + end + + it 'correctly handles looping in a single run' do + expect(subject.compute_budget).to eq(400) + expect { subject.perform }.to change { Status.count }.by(-30) + end + end end end end