首页确定一个核心概念

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相关推荐

  1. VUE设置和清除定时器

    方法一.在生命周期函数beforeDestroy中清除 data() {return {timer: null;}; }, created() { // 设置定时器,5s执行一次this.timer ...

  2. react-Hook中useEffect详解(使用useEffect清除定时器)

    文章目录 useEffect useEffect清除定时器 最后 useEffect 之前我们学习了class组件的声明周期,那么我们想在函数式组件中做一些声明周期有关操作能否实现呢? 函数式组件中是 ...

  3. vue项目中清除定时器(清除定时器不成功)

    首先确认< router-view >外层是否有包裹了一层< keep-alive > 如果有包裹: <template><div><keep-a ...

  4. vue中定时器一般用法,定时器函数传参以及清除定时器

    一.vue中定时器一般用法(举个例子) 显示当前时间, setInterval()方法会每秒执行一次函数,类似手表功能: <template><div class="use ...

  5. 微信小程序页面跳转后清除定时器

    笔记 前言:因为做项目,有些数据是实时的,所以要用定时器定时调用接口请求.最开始我加上定时请求,然后跳转的时候,接口请求还是一直执行.但是我想要的是页面跳转后,就清除定时器了.期间有一些小问题的出现, ...

  6. 清除定时器 和 vue 中遇到的定时器setTimeout setInterval问题

    2019-03更新 找到了更简单的方法,以setinterval为例,各位自行参考 mounted() {const that = thisconst timer = setInterval(func ...

  7. JavaScript定时器与清除定时器

    setTimeout定时器 window.setTimeout(调用函数,延时时间); 1.这个window在调用的时候可以省略 2.这个延时时间单位是毫秒 但是可以省略,如果省略默认的是0 3.这个 ...

  8. JS定时器和清除定时器/JS四

    1.永久定时 使用格式如下: timer =window.setInterval(function(){   每隔多长时间执行的代码 }, 1000) 1000代表的是1000毫秒,上面的代码返回的是 ...

  9. ajax清除定时器,AngualrJs清除定时器遇到的坑

    AngualrJs清除定时器遇到的坑 angualrJs清除定时器爬坑之路: 今天发现一个奇怪问题,放在自定义指令里边的定时器竟然在页面跳转之后,在另一个页面这个循环定时器还在执行,这肯定是不行的,会 ...

最新文章

  1. leetcode算法题--旋转链表
  2. SpringCloud教程- 服务消费者(Feign)(SpringCloud版本Finchley)
  3. 零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下)
  4. python -lambda表达式的用法
  5. MEMCACHED在集群环境下对并发更新是否保持数据一致
  6. java jasper 生成xlsx_JasperReports导出到xlsx,而不是xls
  7. 解决Exchange用户邮箱别名为乱码的问题
  8. [C++再学习系列] 虚函数的4条规则
  9. MySQL数据表字段繁体转简体
  10. matlab三维图渲染颜色,三维图颜色渐变
  11. Kmplayer的各种功能设置
  12. 算法实现: OTP(One-Time Pad) 一次一密密码本 加解密
  13. 02 who——open、read、close
  14. Windows下安装 gmpy2
  15. 同步锁 (synchronized)
  16. Thinkpad t450s 加装ssd 记录
  17. 地理围栏算法解析(Geo-fencing)
  18. 软件工程复试面试问题总结(一)
  19. mysql嵌套查询详解_MySQL嵌套查询实例详解_MySQL
  20. 小编我使用 Vue3+Ts+Vite2 写了一个美女小黄站

热门文章

  1. 打开计算机后 无法最小化,最小化窗口后无法在任务栏中显示的三种解决方法...
  2. 计算机编程工程师理论知识,结构工程师基础知识点:程序设计语言
  3. 惠普刀片服务器c7000硬件配置手册_刀片服务器四点不足之处你都知道几个?
  4. java应该学的基础东西
  5. ECMAScript6入门简介篇
  6. 【机器学习】层次聚类
  7. 《leetcode》best-time-to-buy-and-sell-stock-i-ii-iii
  8. Python爬虫学习系列教程-----------爬虫系列 你值的收藏
  9. 图像浏览界面缩放和平移操作的实现
  10. 如果只看一篇文章弄懂Pfile与spfile,那么这篇就够了……