您现在的位置是:网站首页> php专栏 常见问题

tp5定时任务,定时清理日志文件

亦然2019-08-15 10:23:35常见问题人已围观

简介在开发中,有时会有需要定时清理一些不必要的记录,比如商城中用户30天前的浏览记录,观看视频的7天前的观影记录。这些记录需要固定的周期来清理,可以通过linux的crontab定时任务来实现。

     写一个简单的例子,清除7天前的视频观看记录。

1.tp5中写一个文件,在文件里定义删除方法

 public function deldata(){
        //要清空的表
        $arr = [
            0 => 'mac_vod_find_log',
            1 => 'mac_vod_look_log',
            2 => 'mac_vod_look_log',
            3 => 'mac_vod_look_log0',
            4 => 'mac_vod_look_log1',
            5 => 'mac_vod_look_log2',
            6 => 'mac_vod_look_log3',
            7 => 'mac_vod_look_log4',
            8 => 'mac_vod_look_log5',
            9 => 'mac_vod_look_log6',
            10 => 'mac_vod_look_log7',
            11 => 'mac_vod_look_log8',
            12 => 'mac_vod_look_log9',

        ];
        //查表
        $sql = "SELECT table_name FROM information_schema. COLUMNS WHERE table_name LIKE '%mac_vod_find_log%' OR table_name LIKE '%mac_vod_look_log%' GROUP BY table_name;";
        $all_table = Db::query( $sql );
        if($all_table){
            foreach( $all_table as $key => $value ){
                if(in_array( $value['table_name'] , $arr )){
                    $result = Db::connect(config('database1'))->execute('truncate table '.$value['table_name']);
                    echo ("清空".$value['table_name'].'表数据成功!'.'</br>');
                }
            }
        }
    }

2.liunx 服务器配置crontab定时任务

crontab是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。

常用命令如下:
service crond status    查看服务状态

yum install crontabs    安装crontab

crontab -e                  打开crontab编辑

crontab -l                       查看当前的定时任务

crontab -r                       删除 crontab 文件。
crontab -ir                      删除 crontab 文件前提醒用户。

service crond start      启动服务
service crond stop       关闭服务
service crond restart   重启服务
service crond reload    重新载入配置
service crond status    查看服务状态 

chkconfig –level 35 crond on    加入开机启动

大概常用的就这么多,现在讲解一下怎么配置每个星期一凌晨执行清楚命令。

xshell 连接linux服务器,输入crontab -e 命令,进入vim编辑器,写入命令。

0 0 * * 1 crul 方法地址

保存之后,这样定时任务就已经设置成功了。

0 0 * * 1 表示的是 每个星期一的00:00 可以按照下图,设置自己需要的时间。

很赞哦!()

亦然

亦然(共32篇文章)

愿你我既可以朝九晚五,也可以浪迹天涯;愿你我既可以拈花把酒,也能围炉诗书茶。