Laravel进阶系列笔记--(十一)Laravel Linux中实现定时任务
作者:温新
时间:2021-07-10
hi,我是温新,一名PHPer。
本篇文章基于CentOS7.7搭建的PHP环境进行演示。
Laravel实现定时任务真的是太简单了,而windows确实繁琐了很多。现在就来体验一下Linux中的定时任务吧。
Linux中基于Command的定时任务
第一步:创建command任务
php artisan make:command TestCommand
该命令会在app/Console/Commands
目录下生成对应的文件。Commands
目录默认不存在,执行命令时会自动创建。生成的文件内容如下:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class TestCommand extends Command
{
// 命令名称
protected $signature = 'command:name';
// 命令描述
protected $description = 'Command description';
public function __construct()
{
parent::__construct();
}
// 定时任务处理逻辑
public function handle()
{
return 0;
}
}
第二步:修改生成的文件
文件:app/Console/Commands/TestCommand.php
use Illuminate\Support\Facades\Log;
protected $signature = 'sche:test';
public function handle()
{
// 需要处理的任务
Log::info('command命执行的定时任务');
}
第三步:crotab添加定时任务
每分钟执行一次任务
* * * * * php /www/laravelStudy/schela8/artisan msg:hi >> /dev/null 2>&1
这样定时任务就解决啦。
错误解决:/bin/sh: php: command not found
定时任务已经设置好,时间到了,却没有执行,现在一步一步来解决。
第一步:查看PHP的环境变量
echo $PATH;
/usr/local/sbin:/usr/local/bin:/usr/sbin:
/usr/bin:/usr/local/mysql8/bin:/usr/local/php7.4.16/bin:/root/bin
假如,已经设置了PHP环境变量,但仍旧没有生效,则继续拍错。我遇到的情况就属于这样的情况。
第二步:设置软连接
ln -s /usr/local/php7.4.16/bin/php /usr/bin/php
这样就解决咯
我是温新
每天进步一点点,就一点点
请登录后再评论