PHP日记——Lavarel使用定时任务

在业务开发中总会遇到定时任务这种需求,如果要定时不断地执行某句php命令的话则需要用到定时任务

创建命令

php artisan make:console HelloLaravelAcademy --command=laravel:academy

其中HelloLaravelAcademy是命令名,laravel:academy是控制台执行的命令,类似make:console

执行完成后,会在app/Console/Commands目录下生成一个HelloLaravelAcademy.php文件:

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class HelloLaravelAcademy extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'laravel:academy';

    /**
     * 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 mixed
     */
    public function handle()
    {
        //
    }
}

其中$signature即为在控制台执行的命令名,$description为命令描述,handle方法为执行命令时调用的方法。

接下来我们简单编写handle方法如下:

public function handle()
{
    echo "Hello LaravelAcademy\n";
}

运行命令

在运行命令前需要将其注册到App\Console\Kernel$commands属性中:

protected $commands = [
     ...  //其他命令类
     \App\Console\Commands\HelloLaravelAcademy::class
];

接下来我们就可以在控制台运行如下Artisan命令:

php artisan laravel:academy

终端就会打印出:

Hello LaravelAcademy

设置定时任务

输入命令

crontab -e

在文档的末尾输入

*/1 * * * * /usr/bin/php /home/xjk/php/leguanzhu/artisan  laravel:academy 1>> /dev$> /dev/null 2>&1

该句为cron语句,前面的*/1 * * * *表示每分钟执行一次 ,之后phpartisan都要写完整的路径,如果不知道php路径在哪可输入

which php

artisan路径为项目的根目录

添加完再输入以下命令查看

crontab  -l

补充

cron的语法

分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)

cron中几个特殊符号的含义

“*”代表取值范围内的数字,
“/”代表”每”,
“-“代表从某个数字到某个数字,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值