Следует ли повторно использовать существующий цикл ReactPHP? - PullRequest
0 голосов
/ 12 июня 2019

Следует ли использовать один цикл ReactPHP для нескольких целей, как показано ниже, или следует создать новый цикл и использовать его для каждой цели? При повторном использовании цикл, очевидно, уже запущен, так как можно убедиться, что он не был непреднамеренно выполнен до полной настройки, например, в моем примере process (т.е. между $process->start($loop) и $process->stdout->on(...))?

<?php

$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server('127.0.0.1:8080', $loop);

$socket->on('connection', function (React\Socket\ConnectionInterface $connection) use($loop) {
    $connection->on('data', function ($data) use ($connection, $loop) {

        $loop->addTimer(10, function() {
            syslog(LOG_INFO, 'Do something upon non-repeating timer completion');
        });

        $process = new \React\ChildProcess\Process($cmd);
        $process->start($loop);
        $process->stdout->on('data', function ($chunk) {
            syslog(LOG_INFO, 'Do something with $chunk');
        });

    });
});

$loop->run();

1 Ответ

0 голосов
/ 12 июня 2019

Вы должны использовать только один цикл и делиться им внутри своего приложения.Я всегда сначала проверяю, все ли настроено, а затем запускаю цикл.Вы можете сделать это с помощью диспетчера событий, как, например, определяет PSR-14.

...