swoole中提供的定时器怎样使用呢
Admin 2022-09-15 群英技术资讯 730 次浏览
本篇内容介绍了“swoole中提供的定时器怎样使用呢”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
swoole提供了类似JavaScript的setInterval/setTimeout异步高精度定时器,粒度为毫秒级。使用也非常简单。
swoole中提供了一个定期器的用法
$server->tick(1000, function() use ($server, $fd) {
$server->send($fd, "hello world");
});开始的时候我是这么用的,看下代码
<?php
$serv = new Swoole\Server("0.0.0.0", 9501);
$serv->set(array(
'worker_num' => 1, //worker process num
));
$serv->on('connect', function ($serv, $fd){
echo "客户端 ".$fd."连接成功 \n";
});
$serv->on('receive', function ($serv, $fd, $reactor_id, $data) {
echo "客户端 ".$fd."发来消息:".$data."\n";
$serv->send($fd, 'Swoole已经介绍到您发送的消息: '.$data);
});
$serv->on('close', function ($serv, $fd) {
echo "客户端 {$fd}关闭连接\n";
});
$serv->on('WorkerStart', function ($serv, $worker_id){
$serv->tick(2000, function(){
echo "执行定时器任务 ".time()." \n";
});
});
$serv->start();开始使用定时器的时候我放到了 onWorkStart 中执行,这样做的话可以保证在单个worker进程的情况下定时器可以正常运行,但是对于swoole来说让它单进程工作显然辱没了它的 "才华" ,于是我将 work_num 设置为2,然后意外就发生啦,如图

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
PHP5中的对象比较要比PHP4中复杂,所期望的结果更符合一个面向对象语言。当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值都...
今天小编就为大家分享一篇laravel 时间格式转时间戳的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
如何写出优雅耐看的PHP代码?本篇文章带大家了解一下PHP代码的基本书写规范和框架规范,了解它们让你的PHP代码优雅一个档次!
在本篇文章里小编给大家分享了关于php实现多线程的相关知识点以及实例内容,以后兴趣的朋友们学习下。
在laravel中,chunk()方法用于将集合分割为多个指定大小的较小集合,语法为“$指定集合->chunk(指定数量);”;该方法会对各个用户数据进行更新后再查看各个用户数据,这样在查询数据时没有获取大量数据,能够减轻系统的压力。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008