added loop mode for worker.php
This commit is contained in:
@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user