Laravel 任务调度

3 篇文章 0 订阅

Laravel 任务调度(定时任务)

记录一下自己在第一次使用laravel的调度任务遇到的坑~~

这里做一个简单任务调度,我这里的需求是这样的,需要自动调用控制器的一个方法,需要每天定时发送公众号模板消息

那么我需要如下步骤:

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

protected function schedule(Schedule $schedule)
{
      //上班打卡提醒推送定时任务
      $schedule->call(
          'App\Http\Controllers\Index\UserController@send_sgin_Mamage'
      )->at('7:30')->weekdays();
      $schedule->call(
          'App\Http\Controllers\Index\UserController@send_sgin_Mamage'
      )->at('11:30')->weekdays();
      $schedule->call(
          'App\Http\Controllers\Index\UserController@send_sgin_Mamage'
      )->at('12:30')->weekdays();
      $schedule->call(
          'App\Http\Controllers\Index\UserController@send_sgin_Mamage'
      )->at('17:00')->weekdays();
 }

含有很多的定时规则,详情可以查看 laravel文档
https://learnku.com/docs/laravel/5.8/scheduling/3924 调度频率设置

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

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

使用vim教程链接:http://www.cnblogs.com/zzdylan/p/5941706.html

先进入到自己项目的目录下

cd /home/wwwroot/test

在命令行输入
编辑/添加任务

crontab -e

在光标处按“i”或者“insert”键,即可开始修改操作

添加如下代码

* * * * * cd /home/wwwroot/www/项目文件夹 && php artisan schedule:run >> /dev/null 2>&1

php和artisan都要写完整的路径

如果你不知道PHP的路劲,可以用which php 不要用whereis php

输出:

/Applications/XAMPP/xamppfiles/bin/php

根目录就是:

/Applications/XAMPP/xamppfiles/bin/php

也可以动态去到根目录:
cd 项目根目录

eg:

* * * * * cd /home/wwwroot/test && php artisan schedule:run >> /dev/null 2>&1

修改完成之后点击Esc键即可进入命令提示行开始进行(wq)保存操作,最下面的INSERT消失之后就可以输入:wq 命令进行保存操作了。

在命令行输入
查看任务

crontab -u root -l

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

如需要验证任务是否成功执行,可以执行命令

php artisan schedule:run

就会执行schedule方法下的操作啦!

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

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

如果已经使用了绝对路径还是不执行,那就直接在命令行输入php artisan schedule:run,看看有没有执行,如果没有执行,那可能是laravel代码有问题,如果执行了说明是环境变量的问题,好好检查路径的问题。如果不知道php绝对路径是什么,在命令行输入which php,就会提示你php安装在什么位置了。

这里主要这里记录一下,继续变秃,加油!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值