头像

Thinkphp定时执行任务

来源:http://school.sxbd100.com/frame/285.html 代码交流管理员 2018-02-12浏览(859)

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

程序员,你不是一个人;网站开发QQ群:136483411  在线充值,或联系QQ 304534221直接充值

Thinkphp定时执行任务
分类:首页>>PHP/Mysql>>框架 阅读次数:860
查看演示 下载次数: 5

手机扫码访问:

下载资源 下载积分: 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); 
            } 
        } 
    } 
}


标签: 定时
声明:本文为原创文章,如需转载,请注明来源school.sxbd100.com并保留原文链接:http://school.sxbd100.com/frame/285.html
如果您觉得本文的内容对您的学习有所帮助,您可以扫描下面的二维码请我喝杯茶,感谢!
alipay转账 alipay转账 扫扫加qq群

评论(0)


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

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