$a !== '--once')); $data = $paths[0] ?? dirname(__DIR__) . '/data'; $store = new VideoStore("{$data}/videos"); $worker = new VideoWorker($store, "{$data}/videos"); $interrupted = $store->queue()->requeueInterrupted(); fwrite(STDERR, "[video-worker] watching {$data}/videos/queue" . ($interrupted > 0 ? ", {$interrupted} interrupted job(s) queued again" : '') . "\n"); while (true) { $job = $store->queue()->next(); if ($job !== null) { $file = "{$job['folder']}/{$job['hash']}.mp4"; $started = microtime(true); $worker->runOnce(); $record = $store->record($file); $status = $record === null ? 'deleted' : ($record['status'] . ($record['status'] === 'failed' ? ": {$record['error']}" : '')); fwrite(STDERR, sprintf("[video-worker] %s %s in %.1f s\n", $file, $status, microtime(true) - $started)); continue; } if ($once) { break; } sleep(1); }