Workerman进阶之Worker类->id属性研究
龙行 PHP 2019-5-20 1815 0评论
先来看看官方给的例子 如果id===0 设置定时器
use Workerman\Worker;
use Workerman\Lib\Timer;
require_once './Workerman/Autoloader.php';
$worker = new Worker('tcp://0.0.0.0:8585');
$worker->count = 4;
$worker->onWorkerStart = function($worker)
{
// 只在id编号为0的进程上设置定时器,其它1、2、3号进程不设置定时器
if($worker->id === 0)
{
Timer::add(1, function(){
echo "4个worker进程,只在0号进程设置定时器\n";
});
}
};
// 运行worker
Worker::runAll();
注意点:
1.
注意:windows系统由于不支持进程数count的设置,只有id只有一个0号。windows系统下不支持同一个文件初始化两个Worker监听,所以windows系统这个示例无法运行。
2.如果进程重启id值是不变的
3.进程编号id是基于每个实例,每个实例都是从0开始给自己进程编号,所以每个worker实例是会重复,但是自己一个实例中id是不会重复
这个id属性可以用来区别进程哪个进程,上面例子,4个进程.我想在0号进程设置定时器
大自然的搬运工,摘抄一部分给自己做个笔记
评论一下
赞助站长
赞助站长X