我如何可以运行PHP script在一定的时间间隔(例如一天一次)?

StackOverflow https://stackoverflow.com/questions/865381

  •  21-08-2019
  •  | 
  •  

我有一个php script读一个文件通过http(该文件是在其他域)。我想读这个文件只有一天一次或两次,而不是连接到它每次网站刷新。是否有任何其他方式比做得有计划? 我不希望使用计划,因为我更喜欢安装这种行为在脚本本身..因此,它是灵活的,这样我就可以用它任何地方没有设立计划的每一个时间。感谢

有帮助吗?

解决方案

如果您不能或不想使用使用cron和它的确定以更新它,只有当页面被访问。你可以缓存HTTP请求的结果,只更新页面上,如果缓存比你选择一天或任何时间间隔的加载它。

其他提示

我已经做了这样的事情在过去,当我没有访问cron的:

$lastRunLog = '/path/to/lastrun.log';
if (file_exists($lastRunLog)) {
    $lastRun = file_get_contents($lastRunLog);
    if (time() - $lastRun >= 86400) {
         //its been more than a day so run our external file
         $cron = file_get_contents('http://example.com/external/file.php');

         //update lastrun.log with current time
         file_put_contents($lastRunLog, time());
    }
}

您也可以使用基于Web的Cron 如果你想打一个网站上固定的时间间隔。

您甚至可以使用数据库表 - 结构,编号,日期,URL脚本很简单,不管你所需要的 - 每次你运行该脚本时添加行

然后,之前运行脚本只是检查行的号码,你的每一天。

可以使用的cronjob 。然后,可以通过在命令行运行PHP脚本。

php /someplace/somefile.php

在的cronjob将以下,如果你更新的每一天。

0  0  *  0  0  php /someplace/somefile.php

既然你明确说明你不想使用cron,唯一的方式做到这一点(没有什么类似的cron)是设置你的脚本作为一个守护进程。但是,除非你真的需要一个守护进程提供了灵活性,cron是非常容易和简单。

下面是一个守护步行通过

如果您使用的是一个Linux发行版的有系统:

我有一个需要调度每年为基础的工作,独立的应用程序(在的情况下重新启动系统或类似的东西),并且他们给我的建议使用 系统的定时器.拱 Wiki网页 在它提供了一些例子。

如果你是一个* nix的环境中,你可以使用 cron作业

这有什么错的cron?

您有cron的一对夫妇的选择 - 你的PHP可以通过在命令行PHP解释器被调用,或者你可以使用wget或取或相当于调用服务器上的PHP

在一般情况下,从Web服务器的环境中运行PHP有多久可以执行的时间限制,所以一般你不能设置“背景” PHP线程做的东西“后”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top