Remove remaining uses of the ScheduledTaskSubscriber model from Sending
[MAILPOET-4368]
This commit is contained in:
committed by
Aschepikov
parent
63a0f0b940
commit
18d34202a8
@@ -164,8 +164,16 @@ class ScheduledTaskSubscribersRepository extends Repository {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function countProcessed(ScheduledTaskEntity $scheduledTaskEntity): int {
|
||||||
|
return $this->countBy(['task' => $scheduledTaskEntity, 'processed' => ScheduledTaskSubscriberEntity::STATUS_PROCESSED]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function countUnprocessed(ScheduledTaskEntity $scheduledTaskEntity): int {
|
||||||
|
return $this->countBy(['task' => $scheduledTaskEntity, 'processed' => ScheduledTaskSubscriberEntity::STATUS_UNPROCESSED]);
|
||||||
|
}
|
||||||
|
|
||||||
private function checkCompleted(ScheduledTaskEntity $task): void {
|
private function checkCompleted(ScheduledTaskEntity $task): void {
|
||||||
$count = $this->countBy(['task' => $task, 'processed' => ScheduledTaskSubscriberEntity::STATUS_UNPROCESSED]);
|
$count = $this->countUnprocessed($task);
|
||||||
if ($count === 0) {
|
if ($count === 0) {
|
||||||
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
||||||
$task->setProcessedAt(new Carbon());
|
$task->setProcessedAt(new Carbon());
|
||||||
|
@@ -10,7 +10,6 @@ use MailPoet\Entities\SendingQueueEntity;
|
|||||||
use MailPoet\InvalidStateException;
|
use MailPoet\InvalidStateException;
|
||||||
use MailPoet\Logging\LoggerFactory;
|
use MailPoet\Logging\LoggerFactory;
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
use MailPoet\Models\ScheduledTaskSubscriber;
|
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
||||||
use MailPoet\Newsletter\Sending\ScheduledTaskSubscribersRepository;
|
use MailPoet\Newsletter\Sending\ScheduledTaskSubscribersRepository;
|
||||||
@@ -305,8 +304,8 @@ class Sending {
|
|||||||
$this->queue->countToProcess = max($this->queue->countToProcess - $count, 0);
|
$this->queue->countToProcess = max($this->queue->countToProcess - $count, 0);
|
||||||
} else {
|
} else {
|
||||||
// query DB to update counts, slower but more accurate, to be used if count isn't known
|
// query DB to update counts, slower but more accurate, to be used if count isn't known
|
||||||
$this->queue->countProcessed = ScheduledTaskSubscriber::getProcessedCount($this->task->id);
|
$this->queue->countProcessed = $this->scheduledTaskSubscribersRepository->countProcessed($this->scheduledTaskEntity);
|
||||||
$this->queue->countToProcess = ScheduledTaskSubscriber::getUnprocessedCount($this->task->id);
|
$this->queue->countToProcess = $this->scheduledTaskSubscribersRepository->countUnprocessed($this->scheduledTaskEntity);
|
||||||
$this->queue->countTotal = $this->queue->countProcessed + $this->queue->countToProcess;
|
$this->queue->countTotal = $this->queue->countProcessed + $this->queue->countToProcess;
|
||||||
}
|
}
|
||||||
return $this->queue->save();
|
return $this->queue->save();
|
||||||
|
@@ -96,4 +96,24 @@ class ScheduledTaskSubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
$this->assertSame([$this->taskSubscriber2, $this->taskSubscriber3], $this->repository->findBy(['task' => $this->scheduledTask1]));
|
$this->assertSame([$this->taskSubscriber2, $this->taskSubscriber3], $this->repository->findBy(['task' => $this->scheduledTask1]));
|
||||||
$this->assertSame([], $this->repository->findBy(['task' => $this->scheduledTask2]));
|
$this->assertSame([], $this->repository->findBy(['task' => $this->scheduledTask2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testCountProcessed() {
|
||||||
|
$this->assertSame(2, $this->repository->countProcessed($this->scheduledTask1));
|
||||||
|
$this->assertSame(1, $this->repository->countProcessed($this->scheduledTask2));
|
||||||
|
|
||||||
|
$subscriberId = $this->subscriberUnprocessed->getId();
|
||||||
|
$this->assertIsInt($subscriberId);
|
||||||
|
$this->repository->updateProcessedSubscribers($this->scheduledTask2, [$subscriberId]);
|
||||||
|
$this->assertSame(2, $this->repository->countProcessed($this->scheduledTask2));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCountUnprocessed() {
|
||||||
|
$this->assertSame(1, $this->repository->countUnprocessed($this->scheduledTask1));
|
||||||
|
$this->assertSame(1, $this->repository->countUnprocessed($this->scheduledTask2));
|
||||||
|
|
||||||
|
$subscriberId = $this->subscriberUnprocessed->getId();
|
||||||
|
$this->assertIsInt($subscriberId);
|
||||||
|
$this->repository->updateProcessedSubscribers($this->scheduledTask2, [$subscriberId]);
|
||||||
|
$this->assertSame(0, $this->repository->countUnprocessed($this->scheduledTask2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user