没有Windows实用程序的PHP中基于时间的代码执行

时间:2017-07-14 10:51:07

标签: php time

我正在寻找在特定时间运行某些代码的方法。就像在 4pm 一样,它运行一些逻辑并更新我的数据库。我用Google搜索并发现有 Cron(Linux模块)计划任务(windows)来执行此任务。你可以编程,这些实用程序将在所需的时间运行你的逻辑,但我想知道PHP中有任何可用的东西纯粹

2 个答案:

答案 0 :(得分:1)

Linux上的Cron守护程序和Windows上的Scheduled Tasks服务是连续运行的系统组件。他们保留一份工作清单;每个作业都由运行时间(重复)和要运行的命令来描述。 Windows上还有其他详细信息,但它们并不相关。

Cron守护程序或计划任务服务都不关心它们运行的​​命令。如果它是可执行的,则执行它。

您希望在凌晨4点运行的命令是一个PHP脚本,如果它由shell(在终端窗口中)或由Cron或计划任务执行,也不必关心。

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

所有这些(显然是次要的)事情都已由Cron守护程序(在Linux上)和Scheduled Tasks服务(在Windows上)处理(并且正常工作)。如果可以,请使用它们! 使用OS提供的这些服务的唯一障碍是您必须是服务器的管理员才能创建/更新/删除他们的工作。

答案 1 :(得分:0)

您需要一个长时间运行的PHP进程sleep(),持续60秒,并检查当前time()是否有任何操作。

如果有事情可做:做到这一点。然后,sleep()再次进入你的无限循环。