繁体   English   中英

在服务器上特定时间后如何运行PHP函数?

[英]How to run a PHP function after specific time on server?

我有一个将新博客帖子添加到我的数据库的功能。

运行add_new_post()函数后,该帖子应由我的另一个函数approve_post()批准。

但是我不想立即批准该帖子。 我想在1 to 5 minute (random)之间的时间中运行approve_post()函数。

现在,我正在使用此代码:

function add_new_post() {
    *my code of adding post*

    $time = rand(60, 300);
    echo $time;
    sleep($time);

    approve_post();
}

但是浏览器显示加载,直到睡眠结束。 另外,我发现我的Windows计算机显示时间执行错误。

有没有一种方法可以在后台运行approve_post()函数而不会显示页面加载到浏览器中?

我将感谢代码示例。

有多种选择。

您可以使用打开页面所需的ajax,也可以使用Cron作业。 我会更喜欢使用Cron作业

例如,该概念将相同。 帖子表必须具有created_dateapprove_dateapprove_status 因此,当您创建帖子时,它也会保存approve_date

例如,您在18:00创建一个帖子,然后approve_time将为18:05 然后后台进程(ajax或Cron作业)将首先检查approve_status然后在实时时间(如approve_time同时执行approve process

参考: Cron JobAjax

对不起我的英语不好

首先,您需要通过使用以下链接https://www.plus2net.com/php_tutorial/max-ex.php来增加PHP脚本的最大执行时间。

然后使用sleep()函数将代码执行延迟为:

<?php
echo date('H:i:s');
sleep(15);
flush();
echo "<br>";
echo date('H:i:s');
?>

参考链接

或者您可以CronJob

暂无
暂无

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

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