繁体   English   中英

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

[英]How to run a php file at a specific time?

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

一种可能的解决方法是从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');
}

如果需要更大的粒度,一个更好的选择是将其作为守护程序运行(请参阅此处的建议),然后一直循环(可能在内部带有sleep() ),直到时间到了。

您可以使用at命令,运行您的PHP文件,最后,在下次注册对at的另一个调用。 像这样

<?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'");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM