头像

Thinkphp定时执行任务

2018-04-20 16:19:52 收藏    来源:PHP代码   浏览()   评论 ( 0 )   

Thinkphp定时执行任务
在项目中我们经常遇到实时更新商品库存,一般解决方案是通过软件或服务器来定时执行任务。本文的DEMO中每隔60秒执行/Home/Index/crons。
查看演示 下载资源:0

手机扫码访问:

下载资源 下载积分:20

    官方的ThinkPHP/Library/Behavior/CronRunBehavior.class.php有bug,现已修改

<?php 
 
namespace Behavior; 
 
class CronRunBehavior { 
 
    public function run(&$params) { 
        if (C('CRON_CONFIG_ON')) { 
            $this->checkTime(); 
        } 
    } 
 
    private function checkTime() { 
        if (F('CRON_CONFIG')) { 
            $crons = F('CRON_CONFIG'); 
        } else if (C('CRON_CONFIG')) { 
            $crons = C('CRON_CONFIG'); 
        } 
        if (!empty($crons) && is_array($crons)) { 
            $update = false; 
            $log = array(); 
            foreach ($crons as $key => $cron) { 
                if (empty($cron[2]) || $_SERVER['REQUEST_TIME'] > $cron[2]) { 
                    G('cronStart'); 
                    R($cron[0]); 
                    G('cronEnd'); 
                    $_useTime = G('cronStart', 'cronEnd', 6); 
                    $cron[2] = $_SERVER['REQUEST_TIME'] + $cron[1]; 
                    $crons[$key] = $cron; 
                    $log[] = 'Cron:' . $key . ' Runat ' . date('Y-m-d H:i:s') . ' Use ' . $_useTime . ' s ' . "\r\n"; 
                    $update = true; 
                } 
            } 
            if ($update) { 
                \Think\Log::write(implode('', $log)); 
                F('CRON_CONFIG', $crons); 
            } 
        } 
    } 
}


标签: 定时
声明:转载请注明来源(PHP代码)并保留原文链接:http://www.phpdaima.com/Thinkphp-722.html
广告不存在
评论0

后面还有条评论,点击查看>>

温馨提示:为规范评论内容,垃圾评论一律封号...

Thinkphp定时执行任务
我的积分余额: 0.0 已下载次数: 0
所需积分:2020 开始下载
×