enqueuing an insane task restores its sanity

This commit is contained in:
Spine
2025-09-15 07:24:31 +00:00
parent b19dfa460f
commit f3b09a7902
2 changed files with 53 additions and 2 deletions

View File

@@ -108,6 +108,7 @@ class TaskScheduler extends Base {
public function enqueue(int $taskId): int {
self::$db->prepared_query("
UPDATE periodic_task SET
is_sane = true,
run_now = true
WHERE periodic_task_id = ?
", $taskId

View File

@@ -43,6 +43,11 @@ class SchedulerTest extends TestCase {
public function testMissingTaskEntry(): void {
$scheduler = new TaskScheduler();
$this->assertEquals(
-1,
$scheduler->runTask(-666),
"sched-task-no-such-task-id"
);
$this->assertEquals(
-1,
$scheduler->runClass("NoSuchClassname"),
@@ -202,6 +207,11 @@ class SchedulerTest extends TestCase {
$scheduler->clear($taskId),
'task-clear',
);
$this->assertEquals(
1,
$scheduler->runNow($taskId),
'task-run-now',
);
}
public function testTaskStats(): void {
@@ -219,12 +229,52 @@ class SchedulerTest extends TestCase {
}
public function testGlobalStats(): void {
$scheduler = new TaskScheduler();
$stats = $scheduler->runtimeStats();
$stats = new TaskScheduler()->runtimeStats();
$this->assertEquals(
['hourly', 'daily', 'tasks', 'totals'],
array_keys($stats),
'task-stats-global',
);
}
public function testTaskUpdate(): void {
$this->assertEquals(
0,
new TaskScheduler()->updateTask(
taskId: 1,
name: 'Test',
class: 'Bonkers',
description: 'Scheduler functionality test ' . randomString(),
period: 60,
isEnabled: false,
isSane: true,
isDebug: false,
),
'task-update-bad-class',
);
$this->assertEquals(
1,
new TaskScheduler()->updateTask(
taskId: 1,
name: 'Test',
class: 'Test',
description: 'Scheduler functionality test ' . randomString(),
period: 60,
isEnabled: false,
isSane: true,
isDebug: false,
),
'task-update-test',
);
new TaskScheduler()->updateTask(
taskId: 1,
name: 'Test',
class: 'Test',
description: 'Scheduler functionality test',
period: 60,
isEnabled: false,
isSane: true,
isDebug: false,
);
}
}