是否应该将单个ReactPHP循环用于多个目的,如下所示,还是应该创建一个新的循环并用于每个目的?如果被重用,循环显然已经在运行了,那么如何确保在完成配置之前(例如在$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();发布于 2019-06-12 21:12:41
您应该只使用一个循环,并在您的应用程序中共享它。我总是首先确保所有东西都设置好了,然后开始循环。例如,您可以使用PSR-14定义的事件分派器来实现这一点。
https://stackoverflow.com/questions/56562691
复制相似问题