Laravel 5.5 定时任务调度

简介

Cron 定时任务是 Linux 中非常常用的功能。通过 Cron 脚本能使计划任务定期地在系统后台自动运行。

Crontab 是用来记录在特定时间运行的 Cron 的一个脚本文件。

在服务器上通过 crontab -e 来新增或编辑 Cron 条目,通过 crontab -l 查看已存在的 Cron 条目列表。

在以前,开发者要为每一个需要执行的定时任务编写一个 Cron 条目,这是很让人头疼的事。你的任务调度不在源码控制中,你必须使用 SSH 登录到服务器后添加这些 Cron 条目。

Laravel 的命令调度器允许你流式地定义命令调度,在服务器上只需要一个 Cron 条目即可。

任务调度定义在 app/Console/Kernel.php 文件的 schedule 方法中。

protected function schedule(Schedule $schedule)
{
    // $schedule->command('inspire')
    //          ->hourly();
}

开启调度器

想要开启调度器,你唯一需要添加到服务器的 Cron 条目为:

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

该 Cron 会每分钟调用一次 Laravel 命令调度器,然后,Laravel 会自动评估你的调度任务并运行到期的任务。

定义任务调度

在 App\Console\Kernel.php 文件的 schedule 方法中定义所有的调度任务。

<?php

namespace App\Console;

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

class Kernel extends ConsoleKernel
{

    /**
     * 应用提供的 Artisan 命令
     *
     * @var array
     */
    protected $commands = [
        //
    ];

    /**
     * 定义应用的调度任务
     *
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // 每个小时执行一次 inspire 命令
        $schedule->command('inspire')->hourly();
        
        // 每天凌晨执行闭包
        $schedule->call(function () {
            echo 'test';
        })->
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值