我正在实现一个基于 Swoole 模块的 php 并行任务脚本,它作为守护进程工作。
是否可以使用 Swoole 函数而不是 pcntl_signal() 来处理进程信号?
<?php
declare(strict_types=1);
declare(ticks=1);
use Swoole\Coroutine as Co;
$stopCommand = false;
$sigHandler = static function (int $sig) use (&$stopCommand)
{
switch ($sig) {
case SIGTERM:
$stopCommand = true;
break;
}
};
pcntl_signal(SIGTERM, $sigHandler);
Co\run(function() use (&$stopCommand) {
$results = [];
while(true) {
//go(static function () use (&$results, &$stopCommand) {}
co::sleep(1);
if(!$results && $stopCommand) {
break;
}
}
});