added loop mode for worker.php

This commit is contained in:
2026-06-15 05:14:21 +02:00
parent c0f13495ce
commit 8ed5413116

View File

@ -19,6 +19,10 @@ if (php_sapi_name() !== 'cli') {
die("This script can only be run from the command line." . PHP_EOL); die("This script can only be run from the command line." . PHP_EOL);
} }
// Parse arguments
$isLoop = in_array('--loop', $argv);
$loopInterval = 5; // seconds
$lockFile = sys_get_temp_dir() . '/webwizard_worker.lock'; $lockFile = sys_get_temp_dir() . '/webwizard_worker.lock';
$fp = fopen($lockFile, 'w'); $fp = fopen($lockFile, 'w');
@ -26,17 +30,39 @@ if (!flock($fp, LOCK_EX | LOCK_NB)) {
die("[" . date('Y-m-d H:i:s') . "] Worker is already running. Skipping." . PHP_EOL); die("[" . date('Y-m-d H:i:s') . "] Worker is already running. Skipping." . PHP_EOL);
} }
echo "[" . date('Y-m-d H:i:s') . "] Starting LLMpool worker..." . PHP_EOL; if ($isLoop) {
echo "[" . date('Y-m-d H:i:s') . "] Worker started in loop mode (interval: {$loopInterval}s)" . PHP_EOL;
try { } else {
$worker = new LLMpool(); echo "[" . date('Y-m-d H:i:s') . "] Starting LLMpool worker (single run)..." . PHP_EOL;
$worker->processQueue();
} catch (Throwable $e) {
echo "[" . date('Y-m-d H:i:s') . "] FATAL ERROR: " . $e->getMessage() . PHP_EOL;
} }
echo "[" . date('Y-m-d H:i:s') . "] Finished LLMpool worker." . PHP_EOL; $worker = new LLMpool();
/**
* Main processing logic encapsulated to avoid duplication
*/
$processCycle = function() use ($worker) {
echo "[" . date('Y-m-d H:i:s') . "] Cycle started: Processing queue..." . PHP_EOL;
try {
$worker->processQueue();
} catch (Throwable $e) {
echo "[" . date('Y-m-d H:i:s') . "] FATAL ERROR: " . $e->getMessage() . PHP_EOL;
}
echo "[" . date('Y-m-d H:i:s') . "] Cycle finished." . PHP_EOL;
};
// Execution based on mode
if ($isLoop) {
while (true) {
$processCycle();
sleep($loopInterval);
}
} else {
$processCycle();
echo "[" . date('Y-m-d H:i:s') . "] Finished LLMpool worker." . PHP_EOL;
}
// These are only reached in non-loop mode (or if loop is broken by signal)
flock($fp, LOCK_UN); flock($fp, LOCK_UN);
fclose($fp); fclose($fp);
unlink($lockFile); unlink($lockFile);