Delete tasks without queues when fetching sending tasks
[MAILPOET-3379]
This commit is contained in:
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\Tasks;
|
namespace MailPoet\Tasks;
|
||||||
|
|
||||||
|
use MailPoet\Logging\LoggerFactory;
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
use MailPoet\Models\ScheduledTaskSubscriber;
|
use MailPoet\Models\ScheduledTaskSubscriber;
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
@ -97,11 +98,22 @@ class Sending {
|
|||||||
foreach ($tasks as $task) {
|
foreach ($tasks as $task) {
|
||||||
if (!empty($queuesIndex[$task->id])) {
|
if (!empty($queuesIndex[$task->id])) {
|
||||||
$result[] = self::create($task, $queuesIndex[$task->id]);
|
$result[] = self::create($task, $queuesIndex[$task->id]);
|
||||||
|
} else {
|
||||||
|
static::handleInvalidTask($task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function handleInvalidTask(ScheduledTask $task) {
|
||||||
|
$loggerFactory = LoggerFactory::getInstance();
|
||||||
|
$loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->addError(
|
||||||
|
'invalid sending task found, deleting',
|
||||||
|
['task_id' => $task->id]
|
||||||
|
);
|
||||||
|
$task->delete();
|
||||||
|
}
|
||||||
|
|
||||||
public static function createFromScheduledTask(ScheduledTask $task) {
|
public static function createFromScheduledTask(ScheduledTask $task) {
|
||||||
$queue = SendingQueue::where('task_id', $task->id)->findOne();
|
$queue = SendingQueue::where('task_id', $task->id)->findOne();
|
||||||
if (!$queue) {
|
if (!$queue) {
|
||||||
|
@ -58,6 +58,13 @@ class SendingTest extends \MailPoetTest {
|
|||||||
expect($queue->taskId)->equals($this->task->id);
|
expect($queue->taskId)->equals($this->task->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testItDeletesInvalidTasksWhenCreatingManyFromTasks() {
|
||||||
|
$this->queue->delete();
|
||||||
|
$sendings = SendingTask::createManyFromTasks([$this->task]);
|
||||||
|
expect($sendings)->isEmpty();
|
||||||
|
expect(ScheduledTask::findOne($this->task->id))->equals(false);
|
||||||
|
}
|
||||||
|
|
||||||
public function testItCanBeCreatedFromScheduledTask() {
|
public function testItCanBeCreatedFromScheduledTask() {
|
||||||
$sending = SendingTask::createFromScheduledTask($this->task);
|
$sending = SendingTask::createFromScheduledTask($this->task);
|
||||||
$queue = $sending->queue();
|
$queue = $sending->queue();
|
||||||
|
Reference in New Issue
Block a user