Remove remaining usages of MailPoet\Task\Sending from SendingQueue::processSending()

[MAILPOET-5682]
This commit is contained in:
Jan Jakes
2023-10-27 14:45:27 +02:00
committed by Jan Jakeš
parent fa266dadcd
commit e3ff7ccaca
2 changed files with 12 additions and 24 deletions

View File

@@ -16,7 +16,6 @@ use MailPoet\Logging\LoggerFactory;
use MailPoet\Mailer\MailerLog; use MailPoet\Mailer\MailerLog;
use MailPoet\Mailer\MetaInfo; use MailPoet\Mailer\MetaInfo;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\StatisticsNewsletters as StatisticsNewslettersModel; use MailPoet\Models\StatisticsNewsletters as StatisticsNewslettersModel;
use MailPoet\Models\Subscriber as SubscriberModel; use MailPoet\Models\Subscriber as SubscriberModel;
use MailPoet\Newsletter\NewslettersRepository; use MailPoet\Newsletter\NewslettersRepository;
@@ -26,7 +25,6 @@ use MailPoet\Newsletter\Sending\SendingQueuesRepository;
use MailPoet\Segments\SegmentsRepository; use MailPoet\Segments\SegmentsRepository;
use MailPoet\Segments\SubscribersFinder; use MailPoet\Segments\SubscribersFinder;
use MailPoet\Subscribers\SubscribersRepository; use MailPoet\Subscribers\SubscribersRepository;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\Tasks\Subscribers\BatchIterator; use MailPoet\Tasks\Subscribers\BatchIterator;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Carbon\Carbon;
@@ -164,12 +162,6 @@ class SendingQueue {
} }
private function processSending(ScheduledTaskEntity $task, int $timer): void { private function processSending(ScheduledTaskEntity $task, int $timer): void {
$legacyTask = ScheduledTask::findOne($task->getId());
$legacyQueue = $legacyTask ? SendingTask::createFromScheduledTask($legacyTask) : null;
if (!$legacyQueue) {
return;
}
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info( $this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
'sending queue processing', 'sending queue processing',
['task_id' => $task->getId()] ['task_id' => $task->getId()]
@@ -177,8 +169,9 @@ class SendingQueue {
$this->deleteTaskIfNewsletterDoesNotExist($task); $this->deleteTaskIfNewsletterDoesNotExist($task);
$queue = $task->getSendingQueue();
$newsletterEntity = $this->newsletterTask->getNewsletterFromQueue($task); $newsletterEntity = $this->newsletterTask->getNewsletterFromQueue($task);
if (!$newsletterEntity) { if (!$queue || !$newsletterEntity) {
return; return;
} }
@@ -220,8 +213,8 @@ class SendingQueue {
'pause task in sending queue due deleted or trashed segment', 'pause task in sending queue due deleted or trashed segment',
['task_id' => $task->getId()] ['task_id' => $task->getId()]
); );
$legacyQueue->status = ScheduledTaskEntity::STATUS_PAUSED; $task->setStatus(ScheduledTaskEntity::STATUS_PAUSED);
$legacyQueue->save(); $this->scheduledTasksRepository->flush();
$this->wp->setTransient(self::EMAIL_WITH_INVALID_SEGMENT_OPTION, $newsletter->subject); $this->wp->setTransient(self::EMAIL_WITH_INVALID_SEGMENT_OPTION, $newsletter->subject);
return; return;
} }
@@ -251,8 +244,8 @@ class SendingQueue {
'paused task in sending queue due to problem finding subscribers: ' . $exception->getMessage(), 'paused task in sending queue due to problem finding subscribers: ' . $exception->getMessage(),
['task_id' => $task->getId()] ['task_id' => $task->getId()]
); );
$legacyQueue->status = ScheduledTaskEntity::STATUS_PAUSED; $task->setStatus(ScheduledTaskEntity::STATUS_PAUSED);
$legacyQueue->save(); $this->scheduledTasksRepository->flush();
return; return;
} }
$foundSubscribers = empty($foundSubscribersIds) ? [] : SubscriberModel::whereIn('id', $foundSubscribersIds) $foundSubscribers = empty($foundSubscribersIds) ? [] : SubscriberModel::whereIn('id', $foundSubscribersIds)
@@ -277,8 +270,10 @@ class SendingQueue {
$foundSubscribersIds $foundSubscribersIds
); );
$legacyQueue->removeSubscribers($subscribersToRemove); $this->scheduledTaskSubscribersRepository->deleteByScheduledTaskAndSubscriberIds($task, $subscribersToRemove);
if (!$legacyQueue->countToProcess) { $this->sendingQueuesRepository->updateCounts($queue);
if (!$queue->getCountToProcess()) {
$this->newsletterTask->markNewsletterAsSent($newsletterEntity); $this->newsletterTask->markNewsletterAsSent($newsletterEntity);
continue; continue;
} }
@@ -314,7 +309,7 @@ class SendingQueue {
'after queue chunk processing', 'after queue chunk processing',
['newsletter_id' => $newsletter->id, 'task_id' => $task->getId()] ['newsletter_id' => $newsletter->id, 'task_id' => $task->getId()]
); );
if ($legacyQueue->status === ScheduledTaskEntity::STATUS_COMPLETED) { if ($task->getStatus() === ScheduledTaskEntity::STATUS_COMPLETED) {
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info( $this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
'completed newsletter sending', 'completed newsletter sending',
['newsletter_id' => $newsletter->id, 'task_id' => $task->getId()] ['newsletter_id' => $newsletter->id, 'task_id' => $task->getId()]
@@ -324,7 +319,7 @@ class SendingQueue {
} }
$this->enforceSendingAndExecutionLimits($timer); $this->enforceSendingAndExecutionLimits($timer);
} else { } else {
$this->sendingQueuesRepository->pause($legacyQueue->getSendingQueueEntity()); $this->sendingQueuesRepository->pause($queue);
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->error( $this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->error(
'Can\'t send corrupt newsletter', 'Can\'t send corrupt newsletter',
['newsletter_id' => $newsletter->id, 'task_id' => $task->getId()] ['newsletter_id' => $newsletter->id, 'task_id' => $task->getId()]

View File

@@ -265,13 +265,6 @@ class Sending {
$this->updateCount(); $this->updateCount();
} }
public function removeSubscribers(array $subscriberIds) {
$this->scheduledTaskSubscribersRepository->deleteByScheduledTaskAndSubscriberIds($this->scheduledTaskEntity, $subscriberIds);
$this->updateTaskStatus();
$this->updateCount();
}
public function updateProcessedSubscribers(array $processedSubscribers): bool { public function updateProcessedSubscribers(array $processedSubscribers): bool {
$this->scheduledTaskSubscribersRepository->updateProcessedSubscribers($this->scheduledTaskEntity, $processedSubscribers); $this->scheduledTaskSubscribersRepository->updateProcessedSubscribers($this->scheduledTaskEntity, $processedSubscribers);
$this->scheduledTasksRepository->refresh($this->scheduledTaskEntity); // needed while Sending still uses Paris $this->scheduledTasksRepository->refresh($this->scheduledTaskEntity); // needed while Sending still uses Paris