Update first_run timestamp of tasks run at an interval

This commit is contained in:
Kijin Sung 2024-12-12 01:55:55 +09:00
parent f87429687a
commit ffeb9133ab
2 changed files with 13 additions and 5 deletions

View file

@ -321,7 +321,7 @@ class Queue
$tasks = $db_driver->getScheduledTasks('interval');
foreach ($tasks as $task)
{
$db_driver->updateLastRunTimestamp($task->task_srl);
$db_driver->updateLastRunTimestamp($task);
self::_executeTask($task);
}
}

View file

@ -253,13 +253,21 @@ class DB implements QueueInterface
/**
* Update the last executed timestamp of a scheduled task.
*
* @param int $id
* @param object $task
* @return void
*/
public function updateLastRunTimestamp(int $task_srl): void
public function updateLastRunTimestamp(object $task): void
{
$oDB = RFDB::getInstance();
$stmt = $oDB->prepare('UPDATE task_schedule SET last_run = ?, run_count = run_count + 1 WHERE task_srl = ?');
$stmt->execute([date('Y-m-d H:i:s'), $task_srl]);
if ($task->first_run)
{
$stmt = $oDB->prepare('UPDATE task_schedule SET last_run = ?, run_count = run_count + 1 WHERE task_srl = ?');
$stmt->execute([date('Y-m-d H:i:s'), $task->task_srl]);
}
else
{
$stmt = $oDB->prepare('UPDATE task_schedule SET first_run = ?, last_run = ?, run_count = run_count + 1 WHERE task_srl = ?');
$stmt->execute([date('Y-m-d H:i:s'), date('Y-m-d H:i:s'), $task->task_srl]);
}
}
}