Refactor CronWorkerScheduler::reschedule() to use Doctrine
[MAILPOET-3844]
This commit is contained in:
@@ -3,7 +3,6 @@
|
|||||||
namespace MailPoet\Cron;
|
namespace MailPoet\Cron;
|
||||||
|
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
use MailPoet\Models\ScheduledTask;
|
|
||||||
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
@@ -55,11 +54,11 @@ class CronWorkerScheduler {
|
|||||||
return $task;
|
return $task;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function reschedule(ScheduledTask $task, $timeout) {
|
public function reschedule(ScheduledTaskEntity $task, $timeout) {
|
||||||
$scheduledAt = Carbon::createFromTimestamp($this->wp->currentTime('timestamp'));
|
$scheduledAt = Carbon::createFromTimestamp($this->wp->currentTime('timestamp'));
|
||||||
$task->scheduledAt = $scheduledAt->addMinutes($timeout);
|
$task->setScheduledAt($scheduledAt->addMinutes($timeout));
|
||||||
$task->setExpr('updated_at', 'NOW()');
|
$task->setStatus(ScheduledTaskEntity::STATUS_SCHEDULED);
|
||||||
$task->status = ScheduledTask::STATUS_SCHEDULED;
|
$this->scheduledTaskRepository->persist($task);
|
||||||
$task->save();
|
$this->scheduledTaskRepository->flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -78,14 +78,12 @@ class CronWorkerSchedulerTest extends \MailPoetTest {
|
|||||||
public function testItReschedulesTask() {
|
public function testItReschedulesTask() {
|
||||||
$nextRunDate = Carbon::now()->subDay();
|
$nextRunDate = Carbon::now()->subDay();
|
||||||
$task = $this->cronWorkerScheduler->schedule('test', $nextRunDate);
|
$task = $this->cronWorkerScheduler->schedule('test', $nextRunDate);
|
||||||
$oldModel = ScheduledTask::findOne($task->getId());
|
$this->cronWorkerScheduler->reschedule($task, 10);
|
||||||
$this->assertInstanceOf(ScheduledTask::class, $oldModel);
|
|
||||||
$this->cronWorkerScheduler->reschedule($oldModel, 10);
|
|
||||||
$tasks = $this->entityManager->getRepository(ScheduledTaskEntity::class)->findAll();
|
$tasks = $this->entityManager->getRepository(ScheduledTaskEntity::class)->findAll();
|
||||||
$this->entityManager->refresh($task);
|
|
||||||
expect($tasks)->count(1);
|
expect($tasks)->count(1);
|
||||||
expect($tasks[0]->getType())->same('test');
|
expect($tasks[0]->getType())->same('test');
|
||||||
expect($tasks[0]->getStatus())->same(ScheduledTask::STATUS_SCHEDULED);
|
expect($tasks[0]->getStatus())->same(ScheduledTaskEntity::STATUS_SCHEDULED);
|
||||||
expect($tasks[0]->getScheduledAt())->greaterThan($nextRunDate);
|
expect($tasks[0]->getScheduledAt())->greaterThan($nextRunDate);
|
||||||
expect($tasks[0]->getScheduledAt())->greaterThan(Carbon::now());
|
expect($tasks[0]->getScheduledAt())->greaterThan(Carbon::now());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user