laravel 中使用定时任务

Laravel5.3 Artisan Console 文档地址

http://laravelacademy.org/post/6228.html

1、在服务器上查看定时任务有哪些
crontab -e

使用该命令 打开vim 查看添加的任务有哪些

一行代表一个定时任务

2、将对应需要定时的laravel项目 添加到vim中(下面是dxjk的任务示例)

其中/to/artisan 需要更换为dxjk项目的绝对路径

* * * * * php /var/www/html/dxjk/artisan schedule:run >> /dev/null 2>&1

3、在dxjk项目中,更改app/Console/Kernel.php的schedule方法,执行逻辑定时任务(测试,是每分钟将test表id=1的time字段更改写入当前时间戳)

protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
$time = time();
\DB::table('dxjk_test')->where('id',1)->update(['time' => $time]);
})->everyMinute();
}

4、提交代码,查看结果!(正常)

 注:

artisan是laravel项目的命令行工具,通过php artisan + cmd可以执行项目里面定义的php任务,而schedule是laravel自带的一个命令,执行php artisan schedule,laravel会遍历你定义好的定时任务,并根据系统当前时间判断某个任务是否需要执行。crontab 是linux系统的定时任务工具,可以设置执行周期,和需要执行的shell命令,借助crontab每分钟执行一次artisan的schedule命令,让laravel检查是否有任务到期。(上面配置在crontab -e 中的内容,就是 借助crontab 每分钟执行一次artisan的schedule命令)

posted @ 2018-08-30 10:28  LvFish  阅读(1669)  评论(0编辑  收藏  举报