diff --git a/lib/Cron/Workers/SendingQueue/SendingQueue.php b/lib/Cron/Workers/SendingQueue/SendingQueue.php index dfad8d1bfb..77b8984b52 100644 --- a/lib/Cron/Workers/SendingQueue/SendingQueue.php +++ b/lib/Cron/Workers/SendingQueue/SendingQueue.php @@ -29,7 +29,6 @@ use MailPoetVendor\Carbon\Carbon; class SendingQueue { public $mailerTask; public $newsletterTask; - public $batchSize; const TASK_BATCH_SIZE = 5; const EMAIL_WITH_INVALID_SEGMENT_OPTION = 'mailpoet_email_with_invalid_segment'; @@ -85,7 +84,6 @@ class SendingQueue { $this->segmentsRepository = $segmentsRepository; $this->mailerMetaInfo = new MetaInfo; $this->wp = $wp; - $this->batchSize = $this->throttlingHandler->getBatchSize(); $this->loggerFactory = $loggerFactory; $this->newslettersRepository = $newslettersRepository; $this->cronHelper = $cronHelper; @@ -140,7 +138,7 @@ class SendingQueue { } // get subscribers - $subscriberBatches = new BatchIterator($queue->taskId, $this->batchSize); + $subscriberBatches = new BatchIterator($queue->taskId, $this->getBatchSize()); foreach ($subscriberBatches as $subscribersToProcessIds) { $this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->addInfo( 'subscriber batch processing', @@ -210,6 +208,10 @@ class SendingQueue { } } + public function getBatchSize(): int { + return $this->throttlingHandler->getBatchSize(); + } + public function processQueue($queue, $newsletter, $subscribers, $timer) { // determine if processing is done in bulk or individually $processingMethod = $this->mailerTask->getProcessingMethod(); diff --git a/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php b/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php index f33012b1f0..6588ce73b6 100644 --- a/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php +++ b/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php @@ -155,11 +155,14 @@ class SendingQueueTest extends \MailPoetTest { } public function testItConstructs() { - expect($this->sendingQueueWorker->batchSize)->equals(SendingThrottlingHandler::BATCH_SIZE); expect($this->sendingQueueWorker->mailerTask instanceof MailerTask); expect($this->sendingQueueWorker->newsletterTask instanceof NewsletterTask); } + public function testItReturnsCorrectBatchSize(): void { + expect($this->sendingQueueWorker->getBatchSize())->equals(SendingThrottlingHandler::BATCH_SIZE); + } + public function testItEnforcesExecutionLimitsBeforeQueueProcessing() { $sendingQueueWorker = Stub::make($this->getSendingQueueWorker( Stub::makeEmpty(NewslettersRepository::class)), @@ -861,7 +864,7 @@ class SendingQueueTest extends \MailPoetTest { $wp = new WPFunctions; $wp->addFilter('mailpoet_cron_worker_sending_queue_batch_size', $filter); $sendingQueueWorker = $this->getSendingQueueWorker(Stub::makeEmpty(NewslettersRepository::class)); - expect($sendingQueueWorker->batchSize)->equals($customBatchSizeValue); + expect($sendingQueueWorker->getBatchSize())->equals($customBatchSizeValue); $wp->removeFilter('mailpoet_cron_worker_sending_queue_batch_size', $filter); }