目前我的做法是
try {
$process = new \Symfony\Component\Process\Process(['php', 'react-php-test.php']);
$process->setOptions(['create_new_console' => true]);
$process->start();
echo $process->getPid();
} catch (Throwable $throwable) {
echo $throwable->getMessage();
}
$loop = React\EventLoop\Loop::get();
// 创建一个定时器,每3秒执行一次,写入文件
$loop->addPeriodicTimer(3, function () {
file_put_contents('debug.txt', 'test' . PHP_EOL, FILE_APPEND);
});
$loop->run();
php process.php
,执行后,可关闭当前终端,会看到文件中,每3秒会写入'test'字符串
1.自己写CLI
2.另外装个workerman跑
FPM的运行机制跟常驻内存基本绝缘
FPM就别想了·····
fpm 要么用laravel的包,要么就linux Crontab
他要每10秒执行, crontab的最小间隔是分钟,虽然可以用别的方式取巧,但不是很靠谱