swoole 清除定时器提示no timer
首页确定一个核心概念
clearTimer
仅可清除当前进程的定时器
server代码如下:
<?php
class Server
{private $serv;private $timer;public function __construct(){$this->serv = new swoole_server("0.0.0.0", 9501);$this->serv->set(['worker_num' => 8,'daemonize' => false,]);$this->serv->on('Start', [$this, 'onStart']);$this->serv->on('Connect', [$this, 'onConnect']);$this->serv->on('Receive', [$this, 'onReceive']);$this->serv->on('Close', [$this, 'onClose']);$this->serv->start();}public function onStart($serv){$this->echoStr("Server Starting");$this->timer = $serv->tick(1000, function(){$this->echoStr("timer waiting");});// $this->timer = swoole_timer_tick(1000, function() {// });}public function onConnect($serv, $fd, $from_id){// swoole_timer_clear($this->timer);$serv->clearTimer($this->timer);$this->echoStr("Connecting! Clear Timer!");// $serv->send($fd, "Hello {$fd}!");}public function onReceive(swoole_server $serv, $fd, $from_id, $data){$this->echoStr("Get Message From Client {$fd}:{$data}");$serv->send($fd, $data);}public function onClose($serv, $fd, $from_id){$this->echoStr("Client {$fd} close connection");}public function echoStr($msg){echo '[' . date('Y-m-d H:i:s') . ']: ' . $msg . PHP_EOL;}
}
// 启动服务器 Start the server
$server = new Server();
本意图实现server启动后循环输出“timer waiting”,client连接后清除定时器的效果,然而onStart事件是在Master进程的主线程中被调用,而onConnect事件是在work进程中被回调,这里不属于同一进程,故client连接后会提示:
PHP Warning: SwooleServer::clearTimer(): no timer...
原文地址:https://segmentfault.com/a/1190000016558928
转载于:https://www.cnblogs.com/lalalagq/p/9969009.html
swoole 清除定时器提示no timer相关推荐
- VUE设置和清除定时器
方法一.在生命周期函数beforeDestroy中清除 data() {return {timer: null;}; }, created() { // 设置定时器,5s执行一次this.timer ...
- react-Hook中useEffect详解(使用useEffect清除定时器)
文章目录 useEffect useEffect清除定时器 最后 useEffect 之前我们学习了class组件的声明周期,那么我们想在函数式组件中做一些声明周期有关操作能否实现呢? 函数式组件中是 ...
- vue项目中清除定时器(清除定时器不成功)
首先确认< router-view >外层是否有包裹了一层< keep-alive > 如果有包裹: <template><div><keep-a ...
- vue中定时器一般用法,定时器函数传参以及清除定时器
一.vue中定时器一般用法(举个例子) 显示当前时间, setInterval()方法会每秒执行一次函数,类似手表功能: <template><div class="use ...
- 微信小程序页面跳转后清除定时器
笔记 前言:因为做项目,有些数据是实时的,所以要用定时器定时调用接口请求.最开始我加上定时请求,然后跳转的时候,接口请求还是一直执行.但是我想要的是页面跳转后,就清除定时器了.期间有一些小问题的出现, ...
- 清除定时器 和 vue 中遇到的定时器setTimeout setInterval问题
2019-03更新 找到了更简单的方法,以setinterval为例,各位自行参考 mounted() {const that = thisconst timer = setInterval(func ...
- JavaScript定时器与清除定时器
setTimeout定时器 window.setTimeout(调用函数,延时时间); 1.这个window在调用的时候可以省略 2.这个延时时间单位是毫秒 但是可以省略,如果省略默认的是0 3.这个 ...
- JS定时器和清除定时器/JS四
1.永久定时 使用格式如下: timer =window.setInterval(function(){ 每隔多长时间执行的代码 }, 1000) 1000代表的是1000毫秒,上面的代码返回的是 ...
- ajax清除定时器,AngualrJs清除定时器遇到的坑
AngualrJs清除定时器遇到的坑 angualrJs清除定时器爬坑之路: 今天发现一个奇怪问题,放在自定义指令里边的定时器竟然在页面跳转之后,在另一个页面这个循环定时器还在执行,这肯定是不行的,会 ...
最新文章
- leetcode算法题--旋转链表
- SpringCloud教程- 服务消费者(Feign)(SpringCloud版本Finchley)
- 零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下)
- python -lambda表达式的用法
- MEMCACHED在集群环境下对并发更新是否保持数据一致
- java jasper 生成xlsx_JasperReports导出到xlsx,而不是xls
- 解决Exchange用户邮箱别名为乱码的问题
- [C++再学习系列] 虚函数的4条规则
- MySQL数据表字段繁体转简体
- matlab三维图渲染颜色,三维图颜色渐变
- Kmplayer的各种功能设置
- 算法实现: OTP(One-Time Pad) 一次一密密码本 加解密
- 02 who——open、read、close
- Windows下安装 gmpy2
- 同步锁 (synchronized)
- Thinkpad t450s 加装ssd 记录
- 地理围栏算法解析(Geo-fencing)
- 软件工程复试面试问题总结(一)
- mysql嵌套查询详解_MySQL嵌套查询实例详解_MySQL
- 小编我使用 Vue3+Ts+Vite2 写了一个美女小黄站
热门文章
- 打开计算机后 无法最小化,最小化窗口后无法在任务栏中显示的三种解决方法...
- 计算机编程工程师理论知识,结构工程师基础知识点:程序设计语言
- 惠普刀片服务器c7000硬件配置手册_刀片服务器四点不足之处你都知道几个?
- java应该学的基础东西
- ECMAScript6入门简介篇
- 【机器学习】层次聚类
- 《leetcode》best-time-to-buy-and-sell-stock-i-ii-iii
- Python爬虫学习系列教程-----------爬虫系列 你值的收藏
- 图像浏览界面缩放和平移操作的实现
- 如果只看一篇文章弄懂Pfile与spfile,那么这篇就够了……