<?php require_once __DIR__ . '/../vendor/autoload.php'; echo "Client will print out a log message about every second\n"; echo " Press Ctrl+c to exit\n\n"; $builder = new Beelzebub\Daemon\Builder(); $daemon = $builder->setLogger(new \Monolog\Logger('SimpleExample', array(new \Monolog\Handler\StreamHandler('php://stderr'))))->addWorker('hello-world', array('interval' => 1, 'loop' => function (Beelzebub\Worker $w) { $w->getDaemon()->getLogger()->info("Hello world"); }))->build(); $daemon->run();
<?php require_once __DIR__ . '/../vendor/autoload.php'; echo "Client will print out a log message about every second\n"; echo " Press Ctrl+c to exit -> it will take 3-4 seconds\n\n"; $builder = new Beelzebub\Daemon\Builder(); $daemon = $builder->setLogger(new \Monolog\Logger('ResilientExample', array(new \Monolog\Handler\StreamHandler('php://stderr'))))->addWorker('hello-world', array('interval' => 1, 'startup' => function () { pcntl_signal(SIGINT, function () { error_log("Not reacting on SIGINT"); }); pcntl_signal(SIGQUIT, function () { error_log("Not reacting on SIGQUIT"); }); }, 'loop' => function (Beelzebub\Worker $w) { $w->getDaemon()->getLogger()->info("Hello world"); }))->setShutdownTimeout(3)->build(); $daemon->run();
<?php require_once __DIR__ . '/../vendor/autoload.php'; $opts = parseArgs($argv); if (isset($opts['help']) || !isset($opts['pid'])) { echo "Usage: {$argv['0']} [help] [log:<path-to-log-file>] [stop] pid:<path-to-pid-file>\n"; exit(0); } $logHandler = isset($opts['log']) ? new \Monolog\Handler\StreamHandler('file://' . $opts['log']) : new \Monolog\Handler\NullHandler(); $logger = new \Monolog\Logger("DetachedExample", array($logHandler)); $logger->info("Building"); $builder = new Beelzebub\Daemon\Builder(); $daemon = $builder->setLogger($logger)->addWorker('hello-world', array('interval' => 1, 'loop' => function (Beelzebub\Worker $w) { $w->getDaemon()->getLogger()->info("Hello world"); }))->build(); $pidfile = new \Beelzebub\Wrapper\File($opts['pid']); // stop if (isset($opts['stop'])) { echo "Stopping running daemon: "; echo ($daemon->halt($pidfile) ? "OK" : "FAIL") . "\n"; } else { echo "Starting detached daemon: "; try { $pid = $daemon->runDetached($pidfile); echo " [pid: {$pid}, file: {$opts['pid']}]\n"; } catch (\Exception $e) { echo " FAIL: " . $e->getMessage() . "\n"; } } function parseArgs(array $argv) {