序言

        这篇文章讲述的是一种最简单的创建定时任务的操作。

开始

        Laravel8文档 Laravel8中文文档

        创建一个任务,创建成功后会在App/Console/Commands中生成一个以Test命名的文件,我们可以在这里面写我们的任务指令。

php artisan make:command Test

        运行这个定时任务 run 是运行一次,我们可以用来测试是否成功,work是一直运行,每分钟执行一次,当执行到我们设置的时间就会自动执行。

php artisan schedule:run

php artisan schedule:work

/**
     * The name and signature of the console command.
     *
     * @var string
     * 给我们的任务取一个名称
     */
    protected $signature = 'Test';    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }    /**
     * Execute the console command.
     *
     * @return int
     * 在这里进行我们的逻辑编写
     */
    public function handle()
    {
        return 0;
    }

        我们在将逻辑完成之后,就需要在App/Console中的Kernel.php文件当中去设置我们的定时任务的时间段。

/**
     * Define the application's command schedule.
     *
     * @param \Illuminate\Console\Scheduling\Schedule $schedule
     * @return void
     * @name 为我们定义的任务名称 只需要操作这里就OK
     */
    protected function schedule(Schedule $schedule)
    {
        //我们可以根据需求去调整我们的定时任务的运行时间,我会在最下面将时间列出来
        $schedule->command('name')->everyThirtyMinutes();
    }    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__ . '/Commands');        require base_path('routes/console.php');
    }

         成功实例

 

 

 

 定时任务的时间设置

        这是定时任务的时间调度设置。

方法描述
->cron('* * * * *');自定义 Cron 计划执行任务
->everyMinute();每分钟执行一次任务
->everyTwoMinutes();每两分钟执行一次任务
->everyThreeMinutes();每三分钟执行一次任务
->everyFourMinutes();每四分钟执行一次任务
->everyFiveMinutes();每五分钟执行一次任务
->everyTenMinutes();每十分钟执行一次任务
->everyFifteenMinutes();每十五分钟执行一次任务
->everyThirtyMinutes();每三十分钟执行一次任务
->hourly();每小时执行一次任务
->hourlyAt(17);每小时第 17 分钟执行一次任务
->everyTwoHours();每两小时执行一次任务
->everyThreeHours();每三小时执行一次任务
->everyFourHours();每四小时执行一次任务
->everySixHours();每六小时执行一次任务
->daily();每天 0 点执行一次任务
->dailyAt('13:00');每天 13:00 执行一次任务
->twiceDaily(1, 13);每天 01:00 和 13:00 各执行一次任务
->weekly();每周日 00:00 执行一次任务
->weeklyOn(1, '8:00');每周一的 08:00 执行一次任务
->monthly();每月第一天 00:00 执行一次任务
->monthlyOn(4, '15:00');每月 4 号的 15:00 执行一次任务
->lastDayOfMonth('15:00');每月最后一天 15:00 执行一次任务
->quarterly();每季度第一天 00:00 执行一次任务
->yearly();每年第一天 00:00 执行一次任务
->timezone('America/New_York');设置时区

        下面是定时任务的一些约束。

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

总结

1.先创建一个定时任务,并且命名。

2.在创建的定时任务中书写我们的逻辑信息

3.在Kernel文件中设置定时任务的运行时间

4.运行定时任务,进行测试

我们能够在laravel8中文文档中的任务调度去找到相关的信息 Laravel8 任务调度

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部