博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定时器实现延时处理
阅读量:4947 次
发布时间:2019-06-11

本文共 2202 字,大约阅读时间需要 7 分钟。

[ 'uid' => 695, 'uname' => '王大西' ], 3 => [ 'uid' => 698, 'uname' => '王3西' ], 6 => [ 'uid' => 699, 'uname' => '王6西' ], 9 => [ 'uid' => 700, 'uname' => '王9西' ], ]; /** * @var int 环形队列的当前指针 */ public static $currentIndex = 0; /** * @var int 定时间隔 */ public static $time = 1; /** * @var string 任务记录 */ public static $taskRecord = ''; /** * 开启服务 * @param null $time */ public static function run($time = null) { if (!is_null($time)) { self::$time = intval($time); } self::registerHandler(); pcntl_alarm(self::$time); } /** * 注册信号处理函数 */ public static function registerHandler() { pcntl_signal(SIGALRM, ['Newretail_Timer', 'signalHandler']); } /** * 信号处理函数 */ public static function signalHandler() { //接收到信号,代表环指针移动一次 self::$currentIndex++; if (self::$currentIndex > 59) { self::$currentIndex = 0; } self::task(); //一次信号事件执行完成后,再触发下一次 pcntl_alarm(self::$time); } /** * 执行任务处理 */ public static function task() { if (empty(self::$task)) { return false; } foreach (self::$task as $index => $arr) { if ($index != self::$currentIndex) { continue; } //执行当前任务 $strRecord = sprintf( "当前时间[%s],当前索引为[%s],用户信息为uid[%s],uname[%s]\n", date("Y-m-d H:i:s"), $index, $arr['uid'], $arr['uname'] ); echo $strRecord; self::recordTask($strRecord); //不删除当前任务 //unset(self::$task[self::$currentIndex]); } } public static function recordTask($strRecord = "") { if (empty($strRecord)) { return false; } $fp = fopen("/tmp/recordtask", "a"); fwrite($fp, $strRecord); fclose($fp); return true; }}

 

转载于:https://www.cnblogs.com/hejun695/p/9104497.html

你可能感兴趣的文章
SpringBoot初体验
查看>>
SQL查询列表中每种类型的第一条
查看>>
CSS 文字溢出处添加省略号
查看>>
[HNOI2015]亚瑟王
查看>>
Oracle不足与MySQL优势
查看>>
并发编程之多进程篇之一
查看>>
AutoMapper搬运工之自定义映射
查看>>
EL表达式详解
查看>>
xpath提取多个标签下的text
查看>>
alias导致virtualenv异常的分析和解法
查看>>
html和jsp的区别及优缺点
查看>>
排列组合
查看>>
动态规划
查看>>
Spring的初始化:org.springframework.web.context.ContextLoaderListener
查看>>
Qt编写串口通信程序全程图文讲解(完整)
查看>>
Excel数据生成Sql语句的方法
查看>>
java中random()函数用法介绍
查看>>
C# OLEDB读取EXCEL表格时,某些字段为空解决方法
查看>>
Web前端开发HTML基础(1)
查看>>
bzoj1934: [Shoi2007]Vote 善意的投票
查看>>