Laravel 任务调度(计划任务,定时任务)

   日期:2020-12-31     浏览:89    评论:0    
核心提示:欢迎来到手把手复制执行环节第一步生成调用文件执行以下命令php artisan make:command 你的命名该命令会在 app/Console/Commands 目录下创建 你命名的文件下面是我对该文件的理解<?phpnamespace App\Console\Commands;use Illuminate\Console\Command;use App\Models\User;use Illuminate\Support\Facades\Log; class Tes

欢迎来到手把手复制执行环节

步骤目录

    • 第一步生成调用文件
    • 第二步定义调度
    • 第三步启动调度器

第一步生成调用文件

执行以下命令
php artisan make:command 你的命名
该命令会在 app/Console/Commands 目录下创建 你命名的文件
下面是我对该文件的理解

<?php
namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Models\User;
use Illuminate\Support\Facades\Log; 

class Test Command
{ 
    
     //此处代表名称,调用时使用
    protected $signature = 'command:Test';
 
    
      //对定时任务的描述
    protected $description = '这是一个测试';
 
    
    public function __construct()
    { 
        parent::__construct();
    }
 
    
    public function handle()  
    { 
    	
    	 //我们可以在这里做我们需要的操作
    	 $user = User::find(1);
    	 $user->update(['name'=>'成功修改']);
    	 Log::info('定时任务执行');
    }
}

第二步定义调度

文件修改好以后我们需要在App\Console\Kernel== 类的 schedule 方法中定义所有调度任务

<?php

namespace App\Console;

use DB;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{ 
    
    protected $commands = [
    	//这里写上你生成的文件路径
        \App\Console\Commands\Test::class,
    ];

    
    protected function schedule(Schedule $schedule)
    { 
    	//该处执行调度
 		$schedule->command('command:Test')->monthly();
    }
}

以下为调度频率设置函数

->cron('* * * * *');    在自定义Cron调度上运行任务
->everyMinute();    每分钟运行一次任务
->everyFiveMinutes();   每五分钟运行一次任务
->everyTenMinutes();    每十分钟运行一次任务
->everyThirtyMinutes(); 每三十分钟运行一次任务
->hourly(); 每小时运行一次任务
->daily();  每天凌晨零点运行任务
->dailyAt('13:00'); 每天13:00运行任务
->twiceDaily(1, 13);    每天1:00 & 13:00运行任务
->weekly(); 每周运行一次任务
->monthly();    每月运行一次任务
->monthlyOn(4, '15:00');    每月415:00运行一次任务
->quarterly();  每个季度运行一次
->yearly(); 每年运行一次
->timezone('America/New_York'); 设置时区

第三步启动调度器

只需将以下 Cron 项目添加到服务器

* * * * * /你php的绝对路径 /你项目的根目录绝对路径/artisan schedule:run >> /dev/null 2>&1

操作如下
命令行输入crontab -e
输入i可以进入编辑状态,可输入任务代码。
在最后面添加

* * * * * /你php的绝对路径 /你项目的根目录绝对路径/artisan schedule:run >> /dev/null 2>&1
例如
* * * * * /www/server/php/74/bin/php /www/wwwroot/test/artisan schedule:run >> /dev/null 2>&1

回车换行以后
先按Esc键,然后输入:wq 保存文件

然后执行命令

php artisan schedule:run 

定时任务调度即可顺利执行

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服