Swoole学习(六)Swoole之定时器的创建与清除
环境:Centos6.4,PHP环境:PHP7,Swoole2.1(在指定的时间后执行函数,需要1.7.7或更高版本)
<?php
//---------------------------------------------------swoole_timer_tick--------------------------------------------------//
//设置一个间隔时钟定时器,与after定时器不同的是tick定时器会持续触发,直到调用swoole_timer_clear清除。
//int swoole_timer_tick(int $ms, callable $callback, mixed $user_param);
//$ms 指定时间,单位为毫秒
//$callback_function 时间到期后所执行的函数,必须是可以调用的。
//$user_param 用户参数, 该参数会被传递到$callback_function中. 如果有多个参数可以使用数组形式. 也可以使用匿名函数的use语法传递参数到回调函数中
//定时器仅在当前进程空间内有效
//定时器是纯异步实现的,不能与阻塞IO的函数一起使用,否则定时器的执行时间会发生错乱
//$ms 最大不得超过 86400000
//tick定时器在1.7.14以上版本可用
//定时器在执行的过程中可能会产生微小的偏差,请勿基于定时器实现精确时间计算
swoole_timer_tick(, function ($timer_id) { //每隔2000ms触发一次
echo "tick-2000ms\n"; });
//---------------------------------------------------swoole_timer_after--------------------------------------------------//
//swoole_timer_after函数是一个一次性定时器,执行完成后就会销毁。此函数与PHP标准库提供的sleep函数不同,after是非阻塞的。而sleep调用后会导致当前的进程进入阻塞,将无法处理新的请求。 //执行成功返回定时器ID,若取消定时器,可调用 swoole_timer_clear
//int swoole_timer_after(int $after_time_ms, mixed $callback_function, mixed $user_param);
//$after_time_ms 指定时间,单位为毫秒,最大不得超过 86400000
//$callback_function 时间到期后所执行的函数,必须是可以调用的。
//$user_param 用户参数, 该参数会被传递到$callback_function中. 如果有多个参数可以使用数组形式. 也可以使用匿名函数的use语法传递参数到回调函数中 swoole_timer_after(, function () { //3000ms后执行此函数
echo "after 3000ms.\n";
}); //--------------------------------------------------swoole_timer_clear---------------------------------------------------//
//清除定时器
//使用定时器ID来删除定时器。
//bool swoole_timer_clear(int $timer_id)
//$timer_id,定时器ID,调用swoole_timer_tick、swoole_timer_after后会返回一个整数的ID
//swoole_timer_clear不能用于清除其他进程的定时器,只作用于当前进程
$timer = swoole_timer_after(, function(){
echo "timeout\n";
}); var_dump(swoole_timer_clear($timer));
var_dump($timer); // 输出:bool(true) int(1)
// 不输出:timeout
Swoole学习(六)Swoole之定时器的创建与清除的更多相关文章
- Swoole学习(七)Swoole之异步TCP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...
- Swoole学习(五)Swoole之简单WebSocket服务器的创建
环境:Centos6.4,PHP环境:PHP7 服务端代码 <?php //创建websocket服务器 $host = '0.0.0.0'; $port = ; $ws = new swool ...
- Swoole学习(三)Swoole之UDP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建UCP服务器(UDP服务器相对于TCP服务器通信更可靠些) /** * $host 是swoole需要监听的ip,如果要监听本 ...
- Swoole学习(二)Swoole之TCP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...
- Swoole学习(四)Swoole之简单WEB服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建WEB服务器 $host = '0.0.0.0'; $port = ; $server = new swoole_http_s ...
- LINUX内核分析第六周学习总结——进程的描述与创建
LINUX内核分析第六周学习总结--进程的描述与创建 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc ...
- C#多线程学习(六) 互斥对象
如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类. 我们可以把Mutex看作一个出租车,乘客看作线程.乘客首先 ...
- day 84 Vue学习六之axios、vuex、脚手架中组件传值
Vue学习六之axios.vuex.脚手架中组件传值 本节目录 一 axios的使用 二 vuex的使用 三 组件传值 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 axios的 ...
- Hbase深入学习(六) Java操作HBase
Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...
随机推荐
- 【CF628D】Magic Numbers 数位DP
[CF628D]Magic Numbers 题意:求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数(这里的偶数位是的是从高位往低位数的偶数位).$a,b<10^{2 ...
- varints
Protocol Buffer技术详解(数据编码) - Stephen_Liu - 博客园 https://www.cnblogs.com/stephen-liu74/archive/2013/01/ ...
- pymsql与ORM--python操作MySQL之利器
pymsql 原生模块 pymsql是python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 pip3 install pymysql 使用操作 1.执行SQL impor ...
- Hive简介及使用
一.Hive简介 1.hive概述 Apache Hive™数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集. 可以将结构投影到已存储的数据中.提供了命令行工具和JDBC驱动 ...
- 解决线上Tomcat启动慢
vim /application/jdk/jre/lib/security/java.security # securerandom.source=file:/dev/randomsecurerand ...
- java 字符串截取的方法
1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时. String str = " ...
- 1.新建项目出现包名有一道红线The SDK platform-tools version ((23)) is too old to check APIs compiled with API 20
原因分析: 就是platform-tools的版本太低导致的 解决方法: 1.点开SDK Manager,打开SDK Tools面板,将Platform-tools更新 2.更新完之后重启as即可
- 如何制作一款HTML5 RPG游戏引擎——第五篇,人物&人物特效
上一次,我们实现了对话类,今天就来做一个游戏中必不可少的——人物类. 当然,你完全是可以自己写一个人物类,但是为了方便起见,还是决定把人物类封装到这个引擎里. 为了使这个类更有意义,我还给人物类加了几 ...
- supervisor配置与应用
1.简介 supervisor 是一款基于Python的进程管理工具,可以很方便的管理服务器上部署的应用程序.supervisor的功能如下: a. 启动.重启.关闭包括但不限于python进程. b ...
- Vim step by step
@1: VIM中非常迷人的功能: D------->从当前位置开始删除,直到当前行结束 cw------->修改游标所在的单词,修改范围从游标位置到单词结尾. 一个替换一个用r,一个替换多 ...