本文整理匯總了PHP中Daemon::run方法的典型用法代碼示例。如果您正苦於以下問題:PHP Daemon::run方法的具體用法?PHP Daemon::run怎麽用?PHP Daemon::run使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Daemon
的用法示例。
在下文中一共展示了Daemon::run方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: function
});
$client->on("receive", function (swoole_client $cli, $data) use($pid) {
lg("[{$pid}] Received: {$data}", __LINE__);
$cli->close();
});
$client->on("error", function (swoole_client $cli) use($pid) {
$cli->close();
//lg("[$pid] error then conn close", __LINE__);
exit(0);
});
$client->on("close", function (swoole_client $cli) use($pid) {
//lg("[$pid] conn close", __LINE__);
});
$client->connect('127.0.0.1', 8001, 0.5);
//lg("[$pid] create conn succ", __LINE__);
exit(0);
}
if (isset($argv[1])) {
$daemon = new Daemon(['func' => 'send', 'fork_num' => 1]);
switch ($argv[1]) {
case 'r':
$daemon->run();
break;
case 'k':
$daemon->stop();
break;
case 's':
$daemon->status();
break;
}
}
示例2: childDying
$dummy = new dummy();
$dummy->setuniq();
echo "Starting new child with: {$dummy->uniqid}\n";
$daemon->childObject = $dummy;
return TRUE;
}
function childDying(&$daemon, $pid)
{
echo "Child with: {$daemon->currentObjects[$pid]->uniqid} terminating\n";
}
class dummy
{
public $uniqid = NULL;
function setuniq()
{
$this->uniqid = uniqid();
}
function stack()
{
while (1) {
sleep(2000);
}
}
}
$job = new Daemon();
$job->procName = 'phpdaemon';
$job->bind('onLauncher', 'childStart');
$job->bind('onLaunchJob', 'childJob');
$job->bind('onChildTerminated', 'childDying');
$job->run();
示例3: Daemon
<?php
require __DIR__ . '/libs/local.php';
require __DIR__ . '/libs/daemon.php';
require __DIR__ . '/libs/ElephantIO/Client.php';
ini_set('display_errors', 1);
error_reporting(E_ALL);
// TODO: Придумать, где брать путь
$logs_dir = __DIR__ . '/../../../../temp/logs/network/';
try {
$daemon = new Daemon($logs_dir);
$pid = $daemon->run();
// TODO: Добавить периодическую проверку pid-файла на всякий случай.
} catch (Exception $e) {
exit($e->getMessage());
}
$local = new Local();
$events_dir = $local->get_events_dir();
if (!is_dir($events_dir)) {
mkdir($events_dir, 0777, true);
}
$local->save_daemon_pid($pid);
$local->log('info', 'Daemon started with pid "' . $pid . '"', 'fast');
$conn_data = $local->get_connection_data();
// TODO: Реакция на отключение сервера.
$elephant = new ElephantIO\Client($conn_data['url'], 'socket.io', 2, true, true, $local->is_debug(), $conn_data['namespace'], '127.0.0.1', 10000, 'file', $events_dir);
$elephant->setLogger($local);
$elephant->setLicence($conn_data['key'], $conn_data['domain']);
foreach ($local->get_events() as $event) {
$elephant->on($event, function ($data) use($event, $local) {
$local->log('info', 'Event received: ' . $event . '(' . serialize($data) . ')', 'fast');
示例4: exit
exit(0);
}
// Делаем основным процессом дочерний...
posix_setsid();
// Включаем тики, в противном случае скрипт просто повисает и не реагирует на внешние раздражители...
declare (ticks=1);
// Здесь я подключаю всякую нужную штуку...
include __DIR__ . '/Daemon.php';
include __DIR__ . '/ExampleClass.php';
// Класс изображающий полезную нагрузку...
$example = new ExampleClass();
// Именно эта функция делает всякую полезую нам нагрузку, которую мы хотим демонизировать...
// Если нам нужны какие-нибудь классы не забываем упомянуть их тут в противном случае простоо не получите к ним доступ...
$func = function () use($example) {
// Тут живёт всякая полезная нагрука...
$example->test();
return true;
};
// Собственно создаём демона, соответственно говорим ему куда записывать свой pid...
$daemon = new Daemon('/tmp/daemon.pid');
// Закрываем порочные связи со стандартным вводом-выводом...
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
// Перенаправляем ввод-вывод туда куда нам надо или не надо...
$STDIN = fopen('/dev/null', 'r');
$STDOUT = fopen('/dev/null', 'wb');
$STDERR = fopen('/dev/null', 'wb');
// Запускаем функцию несущую полезную нагрузку...
$daemon->run($func);
示例5: sleep
<?php
include_once 'daemon.php';
Daemon::run();
// declare(ticks=1);
//pcntl_signal(SIGUSR1, function() {
// echo 'Got SIGUSR1';
//});
for ($i = 0; $i < 1800; $i++) {
echo "\n{$i}";
sleep(1);
}