From 8bd98c3bd84ac3a8562b034bbf4be70101a830c3 Mon Sep 17 00:00:00 2001 From: Brendan Heywood Date: Tue, 30 Nov 2021 12:52:46 +1100 Subject: [PATCH] MDL-73207 cron: Fixed cronspec field order bug --- config-dist.php | 2 +- lib/classes/task/manager.php | 5 +++-- lib/tests/scheduled_task_test.php | 26 +++++++++++++------------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/config-dist.php b/config-dist.php index d7698cc886a..1f760c3608b 100644 --- a/config-dist.php +++ b/config-dist.php @@ -1131,7 +1131,7 @@ $CFG->admin = 'admin'; // ], // ]; // -// The format for the schedule definition is: '{minute} {hour} {day} {dayofweek} {month}'. +// The format for the schedule definition is: '{minute} {hour} {day} {month} {dayofweek}'. // // The classname of the task also supports wildcards: // diff --git a/lib/classes/task/manager.php b/lib/classes/task/manager.php index 8a7cddd693e..48667b1f97a 100644 --- a/lib/classes/task/manager.php +++ b/lib/classes/task/manager.php @@ -1174,8 +1174,9 @@ class manager { $overriddenrecord->minute, $overriddenrecord->hour, $overriddenrecord->day, - $overriddenrecord->dayofweek, - $overriddenrecord->month) = explode(' ', $taskconfig['schedule']); + $overriddenrecord->month, + $overriddenrecord->dayofweek + ) = explode(' ', $taskconfig['schedule']); } } diff --git a/lib/tests/scheduled_task_test.php b/lib/tests/scheduled_task_test.php index b15a7a01edf..6bf58323f7a 100644 --- a/lib/tests/scheduled_task_test.php +++ b/lib/tests/scheduled_task_test.php @@ -177,9 +177,9 @@ class core_scheduled_task_testcase extends advanced_testcase { $task = reset($tasks); $task->set_minute('1'); $task->set_hour('2'); - $task->set_month('3'); - $task->set_day_of_week('4'); - $task->set_day('5'); + $task->set_day('3'); + $task->set_month('4'); + $task->set_day_of_week('5'); $task->set_customised('1'); \core\task\manager::configure_scheduled_task($task); @@ -230,9 +230,9 @@ class core_scheduled_task_testcase extends advanced_testcase { // Edit a task to simulate a change in its definition (as if it was not customised). $task->set_minute('1'); $task->set_hour('2'); - $task->set_month('3'); - $task->set_day_of_week('4'); - $task->set_day('5'); + $task->set_day('3'); + $task->set_month('4'); + $task->set_day_of_week('5'); \core\task\manager::configure_scheduled_task($task); // Fetch the task out for comparison. @@ -562,16 +562,16 @@ class core_scheduled_task_testcase extends advanced_testcase { 'min' => '10', 'hour' => '13', 'day' => '1', - 'week' => '2', - 'month' => '4', + 'month' => '2', + 'week' => '4', 'disabled' => 0, ), '\core\task\scheduled_test2_task' => array( 'min' => '*', 'hour' => '*', 'day' => '*', - 'week' => '*', 'month' => '*', + 'week' => '*', 'disabled' => 1, ), ) @@ -592,16 +592,16 @@ class core_scheduled_task_testcase extends advanced_testcase { 'min' => '1', 'hour' => '2', 'day' => '3', - 'week' => '4', - 'month' => '5', + 'month' => '4', + 'week' => '5', 'disabled' => 0, ), '\core\task\scheduled_test2_task' => array( 'min' => '1', 'hour' => '2', 'day' => '3', - 'week' => '4', - 'month' => '5', + 'month' => '4', + 'week' => '5', 'disabled' => 0, ), )