Rewrite Scheduler::processPostNotificationNewsletter() using Doctrine

[MAILPOET-4375]
This commit is contained in:
Jan Jakes
2023-10-24 11:49:59 +02:00
committed by Aschepikov
parent 6517c697d6
commit 1ef88a5fb5
2 changed files with 46 additions and 34 deletions

View File

@@ -205,4 +205,20 @@ class SendingQueuesRepository extends Repository {
$queue->setMeta($meta);
$this->flush();
}
public function updateCounts(SendingQueueEntity $queue, ?int $count = null): void {
if ($count) {
// increment/decrement counts based on known subscriber count, don't exceed the bounds
$queue->setCountProcessed(min($queue->getCountProcessed() + $count, $queue->getCountTotal()));
$queue->setCountToProcess(max($queue->getCountToProcess() - $count, 0));
} else {
// query DB to update counts, slower but more accurate, to be used if count isn't known
$task = $queue->getTask();
$processed = $task ? $this->scheduledTaskSubscribersRepository->countProcessed($task) : 0;
$unprocessed = $task ? $this->scheduledTaskSubscribersRepository->countUnprocessed($task) : 0;
$queue->setCountProcessed($processed);
$queue->setCountToProcess($unprocessed);
$queue->setCountTotal($processed + $unprocessed);
}
}
}