php定时触发生成,php通过event扩展创建定时器,php毫秒级定时器_莈莈的博客-程序员宅基地

技术标签: php定时触发生成  

PHP简单定时器可以通过pcntl_signal创建闹钟信号来实现。但是缺点很明显,性能一般,要自己实现守护进程,不支持毫秒级定时器,单进程不支持多个闹钟信号,不能跨平台运行

event扩展支持的事件多,性能高。<?php

//创建event配置.[空配置]

$eventConfig = new EventConfig();

//创建eventBase对象.event的所有基础类

$eventBase = new EventBase($eventConfig);

//创建event事件

$event = new Event($eventBase,-1,Event::TIMEOUT | Event::PERSIST,function(){

echo 'date:'.date('Y-m-d H:i:s').PHP_EOL;

});

//将创建的event事件扔到eventBase中,并设置超时时间为0.5秒

$event->add(0.05);

//让eventBase对象开始进入事件循环

$eventBase->loop();

上面的代码中可以创建多个event事件全部扔到EventBase对象中全部添加到事件循环,同时启动多个定时任务,且事件循环自动阻塞程序不退出。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33176326/article/details/115569249

智能推荐

数据结构(C语言版)——二叉树链式存储以及前序、中序、后序遍历(代码版)_Kinghiee的博客-程序员宅基地

一、代码#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define OK 1#define ERROR 0typedef int Status;typedef struct node{ char data; struct node *leftChild,*rightChild;}biTreeNode,*TREEPOINTER; int printMenu(void);Status PleaseInit(void);Stat

Java练习:单选题_yqj2065的博客-程序员宅基地

下列叙述中,正确的是()A.Java语言的标识符是区分大小写的 B.源文件名与public类名可以不相同 【在我的印象中,这个好像也可以。在控制台中可以试一试】C.源文件扩展名为.jar D.源文件中public类的数目不限定义定义命名常量LENGTH,值为100的合理语句为()A. public int LENGTH=100 B. final int LENGTH=1

Linux系统编程文件I/O部分总结_CoderZk的博客-程序员宅基地

文件I/O C标准函数和系统函数的区别 I/O缓冲区 每一个FILE 文件流都有一个缓冲区buffer, 默认大小8192字节C标准库函数是带I/O缓冲区的函数LinuxAPI不带缓冲区Linux的read write 是非缓冲io,c标准库里的fread fwrite printf是缓冲io,**非缓冲io每次操作都要与内核交互**,缓冲io为了效率,在`用户态`有缓冲区。所以write会直接输出,printf不直接输出。所以C语言标准函数效率更高.

ubuntu 14.04 安装java_怎样在Ubuntu 14.04中安装Java(转)_无欲无求n次方的博客-程序员宅基地

想知道如何在Ubuntu14.04中安装Java?安装Java肯定是安装Ubuntu 14.04后首先要做的几件事情之一(见http://www.linuxidc.com/Linux/2014-04/100398.htm),而且这也很简单。许多人比较厌恶Java,但是很有可能因为某些原因你需要安装Java,尽管你很讨厌它。在这篇文章中,我们将展示如何在Ubuntu 14.04安装Java(也可能...

保存图像到内存DC_haimianjie2012的博客-程序员宅基地

HDC* CImageShow::InitShowDC(void){ DeleteAppointedDC(&amp;amp;m_hShowDC); m_hShowDC = ::CreateCompatibleDC(this-&amp;gt;GetDC()-&amp;gt;GetSafeHdc()); return &amp;amp;m_hShowDC;}CDC* pDC = m_ImgShow.GetDC();...

spring源码分析(2)——Bean 定义的解析与Bean的注册_shenmaxiang的博客-程序员宅基地

public AnnotationConfigApplicationContext(Class&amp;lt;?&amp;gt;... annotatedClasses) { this(); register(annotatedClasses); refresh();}        在sprint的源码分析(1)中,我们分析了this()这条语句调用的无参构造方法初始化了Annotate...

随便推点

SM7250(高通5G)平台LCD bringup_嵌入式Linux,的博客-程序员宅基地

写在前面的话高通平台显示这一块,自从去年开始,高通全面使用SMxxxx命名的芯片比如高端系列:SM8350(骁龙888),SM8250(骁龙865),SM8150(骁龙855)中端系列:S...

PostgreSQL数据库用户密码的加密方式_weixin_34211761的博客-程序员宅基地

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

Git、GitLab这辈子的错都报完了 You have not concludedUnlink of file、 Pulling is not possible、Your local changes_王大师王文峰的博客-程序员宅基地

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者 公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 转载说明:务必注明来源(注明:作者:王文峰哦) 【小结】 error:Unlink of file xxxx error: You have not concluded your merge (MERGE_HEAD exists). error: P...

Membership角色与权限管理_sptgreen的博客-程序员宅基地

Membership角色与权限管理http://www.blueidea.com/tech/program/2007/4676.asphttp://www.shehui001.com/map.asp?pid=1273Membership学习(一) Membership介绍 Asp.net的membership提供了一种存储,验证和管理用户信息以及权限的统一的路径。...

利用51单片机输出pwm_蛋糕达人的博客-程序员宅基地_51单片机pwm

51单片机是可以输出PWM的,比较的麻烦。此时需要用到内部定时器来实现,可用两个定时器实现,也可以用一个定时器实现。  用两个定时器的方法是用定时器T0来控制频率,定时器T1来控制占空比。大致的的编程思路是这样的:T0定时器中断让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变...

TCP拥塞控制-慢启动、拥塞避免、快重传、快启动_Kim_Weir的博客-程序员宅基地

TCP拥塞控制-慢启动、拥塞避免、快重传、快启动一般原理:发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机)的需求&gt;可用资源。作用:拥塞控制就是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载。拥塞控制要做的都有一个前提:就是网络能够承受现有的网络负荷。对比流量控制:拥塞控制是一个全局的过程,涉及到所有的主机、路由器、以及降低网络相关的所

推荐文章

热门文章

相关标签