如何在特定时间运行php文件?

时间:2014-10-13 01:35:37

标签: php linux cron centos

所以,我正在使用我的CentOS服务器上的PHP时间敏感网站。我在将来的24小时内选择了一个随机时间。此时,我需要一个PHP文件来执行,并选择一个新的日期和要打开的同一个文件。这怎么可能实现?我简要地看了一下cronjobs,但是我无法找到一种方法让它们在特定的,随机的时间打开。

2 个答案:

答案 0 :(得分:0)

一种可能的解决方法是从cron作业运行脚本,比如每10分钟运行一次。在脚本的顶部,检查应该包含时间戳的特定文件。如果当前时间大于文件中的值,请执行该作业,并将新的时间戳值写入此文件。

$time_to_run = intval(file_get_contents('my.timestamp'));
if(time() >= $time_to_run) {
    do stuff
    file_put_contents(time() + random value, 'my.timestamp');
}

如果您需要更多粒度,更好的选择是将其作为守护程序运行(请参阅advices here)并直接循环(可能内部有一些sleep()),直到时机成熟。< / p>

答案 1 :(得分:0)

您可以使用at命令运行您的PHP文件,最后注册再次拨打 。像这样的东西

<?php
// your PHP code in here, and then find out when is the next call time
$time = date('H:i', intval($time)); // or another good way to make sure time value is safe to use as a shell argument, like using escapeshellarg()
$run_me = "/usr/bin/env php " . __FILE__;
exec("echo '$run_me' | at '$time'");