Exemplo n.º 1
0
<?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();
Exemplo n.º 2
0
<?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();
Exemplo n.º 3
0
<?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)
{