当前位置: 首页 > 后端技术 > PHP

PHP实现的毫秒定时器可以解决流程中不重复

时间:2023-03-30 06:12:37 PHP

定时器累加的任务。在WEB应用中比较常见。如何使用PHP实现定时任务,大致有两种解决方案:1)使用crontab命令编写一个shell脚本,在脚本中调用PHP文件,然后定时执行脚本;2)结合使用ignore_user_abort()和set_time_limit()使脚本在没有浏览器的情况下运行。前者利用Linux的特性,与PHP本身无关。后者使用场景有限,脚本只能由一次HTTP请求触发,执行完退出。那么我们如何使用纯PHP实现纯定时器任务,又能适应认知任务的业务需求呢?基于cli方式运行,依赖php扩展swoole,因为定时器支持毫秒,时间间隔小,防止以后进程堆积,进行进程判断,如果进程存在则停止本次,等待下一次执行。>/var/www/html/cctv/Runtime/Logs/huisu_si.log&";$ret=shell_exec("$start_master_cmd");//var_dump($ret);echo'开始进程:'.$start_master_cmd。"\n=====================================\n";}else{echo"进程已经存在~~休息一下~~(".$ret.")\n==================================\n";}});}else{exit("非cli模式,执行已停止!\n");}