如何具体实现PHP定时器实例解析?

更新于
2026-09-28 19:08:17
0阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1703个文字,预计阅读时间需要7分钟。

如何具体实现PHP定时器实例解析?

目录+前言+原因+危险的做法+正确的姿势+CLI模式+总结+前言+常见的定时器有两种:一种是有周期性的,例如每天凌晨三点执行报表;另一种是在指定时间后执行一次,例如员工登录时执行操作。

目录
  • 前言
  • 原因
  • 危险的做法
  • 正确的姿势
  • CLI模式
  • 总结

前言

常见的定时器有两种:一种周期性定时执行,例如每天的凌晨三点出报表;另一种在指定时间后执行(一次),例如会员登录系统五分钟后发放每日登录奖励。两种情况对应shell中的cron和at命令,与JavaScript中的setInterval和setTimeout函数类似(严格来说setInterval是周期性执行,指定时间点执行需要自行处理)。

做web开发的PHP程序员对JavaScript中的两个定时器函数应该都还熟悉,回到PHP层面就有点傻眼:PHP中有sleep,但是没有(内置)定时器函数可用。sleep函数勉强可以做到,但会导致进程阻塞,期间不能做其他事(或无响应)。为什么PHP没能提供定时器(Timer)这个功能呢?

原因

个人认为,web开发中PHP不能使用定时器的本质原因是可控 常驻内存运行环境的缺失。两个要点:第一常驻内存,第二可控。

阅读全文

本文共计1703个文字,预计阅读时间需要7分钟。

如何具体实现PHP定时器实例解析?

目录+前言+原因+危险的做法+正确的姿势+CLI模式+总结+前言+常见的定时器有两种:一种是有周期性的,例如每天凌晨三点执行报表;另一种是在指定时间后执行一次,例如员工登录时执行操作。

目录
  • 前言
  • 原因
  • 危险的做法
  • 正确的姿势
  • CLI模式
  • 总结

前言

常见的定时器有两种:一种周期性定时执行,例如每天的凌晨三点出报表;另一种在指定时间后执行(一次),例如会员登录系统五分钟后发放每日登录奖励。两种情况对应shell中的cron和at命令,与JavaScript中的setInterval和setTimeout函数类似(严格来说setInterval是周期性执行,指定时间点执行需要自行处理)。

做web开发的PHP程序员对JavaScript中的两个定时器函数应该都还熟悉,回到PHP层面就有点傻眼:PHP中有sleep,但是没有(内置)定时器函数可用。sleep函数勉强可以做到,但会导致进程阻塞,期间不能做其他事(或无响应)。为什么PHP没能提供定时器(Timer)这个功能呢?

原因

个人认为,web开发中PHP不能使用定时器的本质原因是可控 常驻内存运行环境的缺失。两个要点:第一常驻内存,第二可控。

阅读全文