<?php /** * @author bigbigant */ require __DIR__ . '/bootstrap.inc.php'; $logFile = __FILE__ . '-simple-Logger.log'; Comos\Qpm\Log\Logger::useSimpleLogger($logFile); echo "Execute 'tail {$logFile}' to see the lastest logs.\n"; $func = function () { $i = 3; while (--$i) { sleep(1); } }; try { Comos\Qpm\Supervision\Supervisor::oneForOne(array('worker' => $func, 'quantity' => 3, 'maxRestartTimes' => 3))->start(); } catch (Exception $ex) { Comos\Qpm\Log\Logger::err($ex); }
<?php /** * @author bigbigant */ require __DIR__ . '/bootstrap.inc.php'; $run = function () { $i = 3; while ($i--) { echo "#{$i} PID:" . posix_getpid() . "\n"; sleep(1); } }; $config = array('worker' => $run, 'quantity' => 3, 'maxRestartTimes' => 30); Comos\Qpm\Supervision\Supervisor::oneForOne($config)->start();
<?php /** * @author bigbigant */ require __DIR__ . '/bootstrap.inc.php'; use Monolog\Handler\StreamHandler; use Monolog\Logger; use Monolog\Formatter\NormalizerFormatter; use Monolog\Formatter\LineFormatter; $logFile = __FILE__ . '.log'; echo "Running... Use ctrl+c to quit.\nExecute 'tail {$logFile}' to see the lastest logs.\n"; $logger = new Logger('qpm'); $handler = new StreamHandler($logFile); new LineFormatter(); $logger->pushHandler($handler); $formatter = new LineFormatter(); $handler->setFormatter($formatter); Comos\Qpm\Log\Logger::setLoggerImpl($logger); function doSomething() { sleep(1); throw new Exception('xxx'); } Comos\Qpm\Supervision\Supervisor::oneForOne(array('worker' => 'doSomething'))->start();