laravel添加定时任务

Laravel 命令行调度器允许你在 Laravel 中对命令调度进行清晰流畅的定义。且使用这个任务调度器时,你只需要在你的服务器上创建单个 Cron 入口接口。你的任务调度在 app/Console/Kernel.php 的 schedule 方法中进行定义

一.定义调度

调度频率设置

当然了,你可以给你的任务分配多种调度计划:

方法描述
->cron('* * * * *');自定义 Cron 时间表执行任务
->everyMinute();每分钟执行一次任务
->everyFiveMinutes();每五分钟执行一次任务
->everyTenMinutes();每十分钟执行一次任务
->everyFifteenMinutes();每十五分钟执行一次任务
->everyThirtyMinutes();每三十分钟执行一次任务
->hourly();每小时执行一次任务
->hourlyAt(17);每小时第 17 分钟执行一次任务
->daily();每天午夜执行一次任务(译者注:每天零点)
->dailyAt('13:00');每天 13 点执行一次任务
->twiceDaily(1, 13);每天 1 点 和 13 点分别执行一次任务
->weekly();每周执行一次任务
->weeklyOn(1, '8:00');每周一的 8 点执行一次任务
->monthly();每月执行一次任务
->monthlyOn(4, '15:00');每月 4 号的 15 点执行一次任务
->quarterly();每季度执行一次任务
->yearly();每年执行一次任务
->timezone('America/New_York');设定时区

结合其他一些特定条件,我们可以生成在一周中特定时间运行的任务。举个例子,在每周一执行命令:

// 每周一 13:00 执行...
$schedule->call(function () {
    //
})->weekly()->mondays()->at('13:00');

// 工作日(周一至周五) 8点 至 17 点每小时执行一次...
$schedule->command('foo')
          ->weekdays()
          ->hourly()
          ->timezone('America/Chicago')
          ->between('8:00', '17:00');

额外的限制条件列表如下:

方法描述
->weekdays();限制任务在工作日执行
->weekends();限制任务在周末执行
->sundays();限制任务在周日执行
->mondays();限制任务在周一执行
->tuesdays();限制任务在周二执行
->wednesdays();限制任务在周三执行
->thursdays();限制任务在周四执行
->fridays();限制任务在周五执行
->saturdays();限制任务在周六执行
->between($start, $end);限制任务在 $start 和 $end 之间执行
->when(Closure);当闭包返回为真时执行
->environments($env);限制任务在特定环境中执行

 

二.启动调度器

当使用这个调度器时,你只需要把下面的 Cron 入口添加到你的服务器中即可。如果你不知道怎么在服务器中添加 Cron 入口,可以考虑使用一些服务来管理 Cron 入口,比如 Laravel Forge

执行crontab -e  在里面添加下面的cron入口

*  * * * * /www/server/php/72/bin/php/ /www/wwwroot/zx/artisan schedule:run >> /dev/null 2>&1

(1)  /www/server/php/72/bin/php/是PHP文件所在的位置

注:若不知道php文件在哪 可在linux下执行 find / -name php.ini

(2)  /www/wwwroot/zx/ 是项目根目录

(3)*  * * * * 指这个 Cron 为每分钟执行一次 Laravel 的命令行调度器

(4)当 schedule:run 命令被执行的时候,Laravel 会根据你的调度执行预定的程序。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值