环境php7.2.14 + swoole4.4
代码如下:
composer require symfony/var-dumper
仿照swoole文档编写:https://wiki.swoole.com/wiki/...
<?php
require_once __DIR__ . "/vendor/autoload.php";
use Swoole\Process;
use Swoole\Timer;
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('test');
function callback_function () {
echo posix_getpid()."\n";
// 异步
Timer::after(3000, function () {
echo posix_getpid()." hello world\n";
});
// 同步
// sleep(3);
// echo posix_getpid()." hello world\n";
global $redis;
};
Timer::tick(1000, function () {
echo posix_getpid()." parent timer\n";
});
Process::signal(SIGCHLD, function ($sig) {
// dump(posix_getpid());
while ($ret = Process::wait(false)) {
dump($ret);
$p = new Process('callback_function');
$p->start();
}
});
$p = new Process('callback_function');
$p->start();
异步Timer::after()输出结果:
子进程疯狂退出,为什么没有等到3秒后在退出??
同步sleep()输出结果符合预期。
https://segmentfault.com/a/11...
改写后就可以了!不过为什么之前子进程第一次运行时是正常的?