作者信息

长期闲置

长风破浪会有时,直挂云帆济沧海。

最近文章
内存条有什么用937
es模块能在node中执行吗603
nodelist是什么意思626
视频教程分类
推荐视频教程
  • php程序员小白到大牛三个月集训php程序员小白到大牛三个月集训
  • Laravel 9 学习正当时—保姆级教程,想学不会都难!Laravel 9 学习正当时—保姆级教程,想学不会都难!
  • 千万级数据并发解决方案(理论+实战)千万级数据并发解决方案(理论+实战)
  • Laravel基础与实战(模块化)Laravel基础与实战(模块化)
  • 首页 >php框架 >Laravel > 正文

    laravel定时任务需要用cron吗

    原创2022-06-02 16:46:24862 关注公众号:每天精选资源文章推送

    laravel定时任务需要用cron;laravel中想要定时执行所有的laravel任务,就需要在服务器上添加cron条目,在root文件中添加“phppath 项目路径/artisan schedule:run...”代码即可。

    本文操作环境:linux7.3系统、Laravel5.4版、Dell G3电脑。

    laravel定时任务需要用cron吗

    laravel中有一个很强大上的功能,只需要在服务器上添加一个cron条目,就可以定时执行所有的laravel任务。

    现在有如下数据表:

    09.png

    我想让cron表中的cron字段的值每分钟增加1,那么我需要如下步骤:

    1、在App\Console\Kernel.php中编写laravel代码

    protected function schedule(Schedule $schedule)
    {
        $schedule->call(function () {
                        DB::table('cron')->increment('cron');
                    })->everyMinute();
     }

    2、在服务的/var/spool/cron/root文件中添加代码

    注意:这里最好使用vim编辑器编辑文件,如果使用winscp编辑文件,会出现不执行任务的问题。

    在命令行输入

    crontab -e

    添加如下代码

    * * * * * /usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev/null 2>&1

    在命令行输入

    crontab -u root -l

    10.png

    不需要重启cron服务,因为系统每分钟都会读一遍/var/spool/cron目录下的文件。

    如果发现按照如下配置还是不能执行的话,可以用以下方法排除问题:

    看一下命令有没有使用绝对路径,比如这里使用/usr/local/php/bin/php而不是php,使用/data/wwwroot/test/artisan而不是artisan。

    如果已经使用了绝对路径还是不执行,那就直接在命令行输入/usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev/null 2>&1,看看有没有执行,如果没有执行,那就是laravel代码的问题,如果执行了说明是环境变量的问题,好好检查路径的问题。如果不知道php在什么地方,在命令行输入which php,就会提示你php安装在什么位置了。

    【相关推荐:laravel视频教程

    以上就是laravel定时任务需要用cron吗的详细内容,更多请关注php中文网其它相关文章!

    20期PHP线上班

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:Laravel
  • 推荐:PHP从基础到实战教程视频

    相关文章

    相关视频


    专题推荐