不使用windows实用程序在PHP中执行基于时间的代码

不使用windows实用程序在PHP中执行基于时间的代码,php,time,Php,Time,我正在寻找一种在特定时间运行某些代码的方法。就像下午4点一样,它运行一些逻辑并更新我的数据库。我在谷歌上搜索,发现有Cron(Linux模块)和调度任务(windows)来执行此任务。您可以编程,这些实用程序将在所需的时间运行您的逻辑,但我想知道,在PHP中是否有任何可用的东西纯您需要一个长时间运行的PHP进程,该进程将sleep()s持续60秒,并检查当前时间()是否有事情要做 如果有什么事要做,就去做。然后,sleep()再次进入无休止的循环。Linux上的Cron守护进程和Windows上

我正在寻找一种在特定时间运行某些代码的方法。就像下午4点一样,它运行一些逻辑并更新我的数据库。我在谷歌上搜索,发现有Cron(Linux模块)调度任务(windows)来执行此任务。您可以编程,这些实用程序将在所需的时间运行您的逻辑,但我想知道,在PHP中是否有任何可用的东西

您需要一个长时间运行的PHP进程,该进程将
sleep()
s持续60秒,并检查当前
时间()是否有事情要做


如果有什么事要做,就去做。然后,
sleep()
再次进入无休止的循环。

Linux上的Cron守护进程和Windows上的调度任务服务是连续运行的系统组件。他们保存了一份要运行的作业列表;每个作业都由运行时间(重复)和运行的命令来描述。Windows上还有其他详细信息,但它们并不相关

Cron守护进程和调度任务服务都不太关心它们运行的命令。如果它是可执行的,他们就执行它

您希望在4am运行的命令是一个PHP脚本,该脚本也不能关心它是由shell(在终端窗口中)还是由Cron或计划任务执行的

可以编写承担Cron守护程序职责的PHP脚本,但不建议这样做。你需要处理很多意想不到的情况。从示例中,您必须实现一种方法,以确保它在计算机启动时启动并持续运行。您必须确保它不会跳过计划在凌晨4点进行的作业,并且不会运行两次。等等,等等

所有这些(显然是次要的)事情都已经由Cron守护进程(在Linux上)和调度任务服务(在Windows上)处理(并正常工作)。如果可以的话就使用它们
使用操作系统提供的这些服务的唯一障碍是,您必须是服务器上的管理员才能创建/更新/删除他们的作业。

如果您可以无限期地运行持久化PHP任务……当然,您可以执行无限循环,并不断检查时间是否已到。但如果没有这些,谁来启动PHP并确保它继续运行?