Delete task when no newsletter was found
When no corresponding newsletter was found the task can be deleted. The behavior before meant that such a task would remain forever in the database with the status 'running'. [MAILPOET-4699]
This commit is contained in:
@ -156,17 +156,14 @@ class SendingQueue {
|
||||
|
||||
$newsletterEntity = $this->newsletterTask->getNewsletterFromQueue($queue);
|
||||
if (!$newsletterEntity) {
|
||||
$this->deleteTask($queue);
|
||||
return;
|
||||
}
|
||||
|
||||
// pre-process newsletter (render, replace shortcodes/links, etc.)
|
||||
$newsletterEntity = $this->newsletterTask->preProcessNewsletter($newsletterEntity, $queue);
|
||||
if (!$newsletterEntity) {
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
|
||||
'delete task in sending queue',
|
||||
['task_id' => $queue->taskId]
|
||||
);
|
||||
$queue->delete();
|
||||
$this->deleteTask($queue);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -494,4 +491,12 @@ class SendingQueue {
|
||||
private function getExecutionLimit(): int {
|
||||
return $this->cronHelper->getDaemonExecutionLimit() * 3;
|
||||
}
|
||||
|
||||
private function deleteTask(SendingTask $queue) {
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
|
||||
'delete task in sending queue',
|
||||
['task_id' => $queue->taskId]
|
||||
);
|
||||
$queue->delete();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user