2017-07-14 33 views
-1

我正在寻找一种在特定时间运行某些代码的方法。像在4pm它运行一些逻辑和更新我的数据库。我GOOGLE了一下,发现有Cron(Linux模块)计划任务(windows)来完成这个任务。你可以编程和这些实用程序将运行你的逻辑在所需的时间,但我想知道是否有任何可用的PHP 纯粹在没有Windows实用程序的PHP中基于时间的代码执行

+0

*如果*您可以无限期地运行一个持久的PHP任务......当然,您可以做一个无限循环并且检查它是否是时间。但没有这些,谁将启动* PHP并确保它继续运行? – deceze

回答

0

您需要一个长时间运行的PHP进程,该进程需要sleep()秒,并检查当前time()是否有任何事情要做。

如果有事要做:做吧。之后,sleep()再次在你无尽的循环中。

1

Linux上的Cron守护进程和Windows上的计划任务服务是连续运行的系统组件。他们保留一份工作清单,每个作业都由运行(重复)的时间和运行的命令来描述。在Windows上还有其他细节,但它们不相关。

Cron守护进程或Scheduled Tasks服务都不在乎他们运行的命令。如果它是可执行的,他们执行它。

想要在凌晨4点运行的命令是一个PHP脚本,如果它由shell(在终端窗口中)或由Cron或Scheduled Tasks执行,它也不会在意。

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

Cron守护进程(在Linux上)和Scheduled Tasks服务(在Windows上)已经处理了所有这些(显然较小的)事情(并且正常工作)。如果可以,请使用它们!
使用操作系统提供的这些服务的唯一障碍是您必须是服务器上的管理员才能创建/更新/删除其作业。