//每晚11.55执行 启动apache 以后 访问首页开启 需要晚上11.55开启
// 启动apache app 目录下添加 cron-run 访问首页 启动 定时任务第一次执行的时间是每晚的11.55
//如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用
function dowhile()
{
//11.55维护 5分钟 禁止用户进行金额操作 购物 充值 提现 session 判断 cal_bal 前 session+ cal_bal后 session-
ignore_user_abort(true);
set_time_limit(0);
date_default_timezone_set('PRC'); // 切换到中国的时间
$run_time = strtotime(date("Y-m-d").' 23:55:00');// 定时任务第一次执行的时间是每晚的11.55
$interval = 3600 * 24; // 每24个小时执行一次
// 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了
if (!file_exists(dirname(__FILE__) . '/cron-run')) exit();
do {
// 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用
if (!file_exists(dirname(__FILE__) . '/cron-switch')) break;
// 当前的运行时间,精确到0.0001秒
$gmt_time = microtime(true);
// 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔
$loop = isset($loop) && $loop ? $loop : $run_time - $gmt_time;
$loop = $loop > 0 ? $loop : 0;
// 如果循环的间隔为零,则停止
if (!$loop) break;
sleep($loop);
// 分钱
\think\Session::set('dowhile', true);
cal_bal();
\think\Session::delete('dowhile');
// 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务
@unlink(dirname(__FILE__) .
php 定时器
最新推荐文章于 2024-06-21 17:58:40 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)