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);
|
$newsletterEntity = $this->newsletterTask->getNewsletterFromQueue($queue);
|
||||||
if (!$newsletterEntity) {
|
if (!$newsletterEntity) {
|
||||||
|
$this->deleteTask($queue);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// pre-process newsletter (render, replace shortcodes/links, etc.)
|
// pre-process newsletter (render, replace shortcodes/links, etc.)
|
||||||
$newsletterEntity = $this->newsletterTask->preProcessNewsletter($newsletterEntity, $queue);
|
$newsletterEntity = $this->newsletterTask->preProcessNewsletter($newsletterEntity, $queue);
|
||||||
if (!$newsletterEntity) {
|
if (!$newsletterEntity) {
|
||||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
|
$this->deleteTask($queue);
|
||||||
'delete task in sending queue',
|
|
||||||
['task_id' => $queue->taskId]
|
|
||||||
);
|
|
||||||
$queue->delete();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,4 +491,12 @@ class SendingQueue {
|
|||||||
private function getExecutionLimit(): int {
|
private function getExecutionLimit(): int {
|
||||||
return $this->cronHelper->getDaemonExecutionLimit() * 3;
|
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