我有一个将新博客帖子添加到我的数据库中的功能。
运行 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()
函数,而不会显示页面加载到浏览器中?
我要感谢一个代码示例。
答案 0 :(得分:0)
有多个选项。
您可以使用打开页面所需的ajax,也可以使用Cron作业。我会更喜欢使用Cron作业
例如,概念将相同。帖子表必须包含created_date
,approve_date
和approve_status
。因此,当您创建帖子时,它也将保存approve_date
。
例如,您在18:00
上创建了一个帖子,然后approve_time
将18:05
。然后,后台进程(ajax或Cron作业)将首先检查approve_status
,然后在实时时间与approve process
相同的情况下执行approve_time
对不起,我的英语
答案 1 :(得分:0)
首先,您需要使用以下链接maximum execution
来增加PHP脚本的https://www.plus2net.com/php_tutorial/max-ex.php时间然后使用sleep()
函数将代码执行延迟为:
<?php
echo date('H:i:s');
sleep(15);
flush();
echo "<br>";
echo date('H:i:s');
?>
或者您可以CronJob