Workerman进阶之Worker类->id属性研究
先来看看官方给的例子 如果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号进程设置定时器
看云手册地址:http://doc3.workerman.net/315130
大自然的搬运工,摘抄一部分给自己做个笔记
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
- 本文网址:https://www.liaotaoo.cn/225.html
- 上篇文章:PHP国家代码
- 下篇文章:workerman启动报错stream_socket_server() has been disabled for security reasons