Add api/status.php — reads all scheduled jobs' stat files and returns a
{id: status} map. The scheduler page polls it every 3s and lights up the
dot on any job whose stat shows status=running, clearing it when done.
Replace single vvRunningId with vvRunningSet (Set) so multiple jobs can
show as running simultaneously. vvSetDot/vvClearDot handle per-job dots
and the header dot for the active job. Remove stale-count detection from
vvFetchRight — status poll is now the single source of truth.
20 lines
726 B
PHP
20 lines
726 B
PHP
<?php
|
|
// Returns current run status for all scheduled jobs.
|
|
// Used by the scheduler page to light up running indicators without user interaction.
|
|
header('Content-Type: application/json');
|
|
require_once dirname(__DIR__) . '/include/scheduler.php';
|
|
|
|
$schedule = vv_schedule_load();
|
|
$result = [];
|
|
foreach ($schedule as $id => $entry) {
|
|
$statFile = vv_job_stat_path($id);
|
|
if (!file_exists($statFile)) continue;
|
|
$stat = json_decode(@file_get_contents($statFile) ?: '{}', true) ?: [];
|
|
$status = $stat['status'] ?? 'unknown';
|
|
if ($status === 'running' && !empty($stat['pid']) && !file_exists("/proc/{$stat['pid']}")) {
|
|
$status = 'error';
|
|
}
|
|
$result[$id] = $status;
|
|
}
|
|
echo json_encode($result);
|