Reschedule failing cron tasks progressively [MAILPOET-2181]

This commit is contained in:
wxa
2019-07-28 16:42:47 +03:00
committed by M. Shull
parent e1b8462254
commit 8b867a7b4f
9 changed files with 86 additions and 27 deletions

View File

@@ -137,6 +137,24 @@ class ScheduledTaskTest extends \MailPoetTest {
expect($task->meta)->equals($meta);
}
function testItCanRescheduleTasksProgressively() {
$task = $this->task;
$task->status = null;
$scheduled_at = $task->scheduled_at;
$timeout = $task->rescheduleProgressively();
expect($timeout)->equals(ScheduledTask::BASIC_RESCHEDULE_TIMEOUT);
expect($scheduled_at < $task->scheduled_at)->true();
expect($task->status)->equals(ScheduledTask::STATUS_SCHEDULED);
$timeout = $task->rescheduleProgressively();
expect($timeout)->equals(ScheduledTask::BASIC_RESCHEDULE_TIMEOUT * 2);
$task->reschedule_count = 123456; // too many
$timeout = $task->rescheduleProgressively();
expect($timeout)->equals(ScheduledTask::MAX_RESCHEDULE_TIMEOUT);
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);