3

我有一个 PHP 脚本,需要在每个月底执行。如果不在类 Unix 系统上使用 cron 或在 Windows 系统上使用任务计划程序,我将如何做到这一点?php中没有一些内置功能吗?因为使用 cron/scheduler 并不是 IMO 的可移植方式。

4

3 回答 3

4

唯一的另一种方法是在加载网站时触发它。例如,您将存储脚本上次运行的时间。然后每次加载页面时,您都会检查是否该运行它。如果是这样,那么您将把它作为页面加载的一部分运行。当然,这取决于(1)任务是一个非常快的任务,以及(2)任务不必完全按计划运行,直到第二个。这基本上是wp_cron()Wordpress 中的工作原理。

于 2012-09-01T11:37:12.937 回答
3

php 只是一种脚本语言,而不是一种能够感知时间并可能在所需时刻触发事件的进程。

一旦您在服务器上安顿下来,您就不必担心可移植性:迁移到另一个地方不会是一个自动过程,因为环境可能非常不同。

所以坚持使用 cron,或者自己编写一个与操作系统无关的层。

于 2012-09-01T11:33:30.953 回答
1

在我工作的系统中,我有一个小模块保存了最后一次运行的脚本,并且在每次运行主脚本时,它都会检查脚本是否不应该运行。如果它应该有,它会在执行任何其他操作之前完成,因此系统无论如何都有正确的数据,即使定期脚本没有“按时”运行。它还检查脚本是否不应该运行多次,并在需要时运行多次。有点粗糙,但是除了 PHP/mysql 之外没有任何东西可以产生正确的结果。

于 2012-09-01T11:41:42.357 回答