前记

laravel实现定时器功能有两种方法:

  1. 使用 command 。

  2.   在闭包函数内写实现的方法。

  在这里我比较推荐第一种方法,因为第一种方法把具体的实现抽离出来了,看起来简单且富有逻辑。

  这里给出官方文档的地址,本文中的大部分内容都参照官方文档。虽然是英文版的,但小伙伴们要习惯看啊,真的,英文文档看多了也就没什么的了。

  官方文档链接:https://laravel.com/docs/5.6/scheduling


利用command实现定时器功能:

1. 首先你要利用laravel new xxx(项目名)新建一个项目,并找到Kernel.php,具体的路径看下面的截图:

2. 接着我们看Kernel.php中的内容

这边有个问题需要注意下:时间不能设置为("24:00"),系统会报错。

3. 接着我们command的具体实现:

 4. 在cron中设置定时触发。  

crontab -l 展示crontab 中的数据、crontab -e修改crontab中的数据

  前面三步很好做,很简单。在第4步有一个坑。

坑坑坑:时区问题。

  cron是什么?cron服务器可以根据配置文件约定的时间来执行特定的作务。也就是说,你需要在cron的配置文件里告诉cron,在什么时间,以什么样的频率,执行什么样的指令。

      比如:* * * * * /usr/bin/php /home/vagrant/HappySleep/artisan schedule:run 这个指令。

* * * * *的意思就是每分钟执行一次。这个执行一次执行的是schedule代码。这个时候你可能会想,这玩意儿和everyMinute有什么关系呢?
它们的关系就是你一分钟执行一次schedule,然后schedule一分钟执行一次everyMinute的命令行。

那如果没有schedule:run,只有everyMinute会出现什么情况呢?

schedule不执行,everyMinute自然也不会执行。

那如果schedule:run是5分钟执行1次,everyMinute执行频率是怎样的呢?

我猜测哈:everyMinute应该是5分钟执行1次,因为只有调用schedule:run的时候它才会被执行。

这个有待验证,会尽快验证一下的。 那schedule:run 和 everyMinute的时间频率是怎样的呢?
有待验证!

  /usr/bin/php /home/vagrant/HappySleep/artisan schedule:run 是具体的命令。

  它由三部分组成:/usr/bin/php、/home/vagrant/HappySleep/artisan、schedule:run。

  其实可以缩减为php artisan schedule:run

  是不是很熟悉?对了,就是php命令。

  只不过我们担心cron找不到php这个指令控制器的位置,就使用/usr/bin/php告诉cron它的位置。

  担心cron找不到是哪个文件,就告诉cron是/home/vagrant/HappySleep这个文件。然后执行artisan。

  后面的schedule:run意思是,执行里面的schedule命令。

  指令讲完之后就给大家讲讲坑的问题:laravel默认的有一个时区,而你的服务器或者自己的电脑也有一个时区,两个时区不一样,时间就不同步,时间不同步,你的命令虽然会被调用,但是不是在你设置的时间调用,导致你认为自己的程序出了问题。所以要确定项目时区和服务器时区是不是在同一时区。

在laravel项目里的下图的app.php文件内,修改'timezone' => 'PRC',意思是修改项目内的时区为中国时区。

在你的服务器中利用tzselect,修改自己服务器的时区。具体教程看这个:

   https://www.cnblogs.com/Jim-william/p/6873823.html   写的非常棒!!!感谢。

退出方案:
ctrl+X

   到这里这篇博客就结束了!静以修身,俭以养德。出现问题不可怕,要冷静思考为什么会出现问题,然后找到方法去解决。

laravel实现定时器功能的更多相关文章

  1. Linux使用一个定时器实现设置任意数量定时器功能【转】

    转自:https://www.jb51.net/article/120748.htm 为什么需要这个功能,因为大多数计算机软件时钟系统通常只能有一个时钟触发一次中断.当运行多个任务时,我们会想要多个定 ...

  2. JAVA实现定时器功能

    在接口开发时,有一种开发模式叫定时器模式,可以理解为每经过一段预设的时间就会执行一次事件,而在我们的工作中,这个事件所实现的功能一般是将两个系统的数据信息进行同步,这样就实现了两个系统通过接口进行对接 ...

  3. Laravel实用小功能

    Laravel实用小功能 1.控制访问次数 laravel5.2的新特性,通过中间件设置throttle根据IP控制访问次数 原理:通过回传三个响应头X-RateLimit-Limit,X-RateL ...

  4. 定时器_在.net core3.0 webapi中添加自定义定时器功能

    前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...

  5. Laravel 实现 Facades 功能

    使用过Laravel的同学都知道Facades 的强大,下面就让我们一起创建一个Facades 实例.如有不正确的地方,还请不吝赐教. 1. 实现Laravel的自动加载功能 首先建立目录app/li ...

  6. 使用 Laravel 数据填充功能生成中文测试数据

    今晚……不对,是昨晚,折腾一个的小项目,发现自动填充的中文数据显示起来总不太美观,于是开始琢磨如何填充中文数据进行测试. 然而一番搜索后惊奇的发现,官方.以及一些非官方的文档均未提及这一功能.期间看到 ...

  7. TIM4定时器功能设置

    一.初始化过程 /*********************************************************************** 利用TIM4定时器作为计时,每个0.1 ...

  8. 不用写Windows服务实现定时器功能(FluentScheduler )

    MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自 ...

  9. Android定时器功能实现方法

    在Android开发中,定时器一般有以下3种实现方法: 1.采用Handler与线程的sleep(long)方法 2.采用Handler的postDelayed(Runnable, long)方法 3 ...

随机推荐

  1. python基础七--集合

    12.221.昨日内容回顾 小数据池: int:-5--256 str:1.不能有特殊字符 2.*int不能超过20 编码:所能看到的最小构成单位叫字符 ascii : 8位 1字节 表示1个字符 u ...

  2. C/C++---printf/cout 从右至左压栈顺序实例详解

    __cdecl压栈顺序实例 明白计算:计算是从右到左计算的 栈和寄存器变量:x++,是将计算结果存放到栈空间,最后是要出栈的:而++x和x是将计算结果直接存放到某个寄存器变量中(是同一个),所以计算完 ...

  3. windows 常用快捷键和dos命令

    快捷键 win + R 打开dos命令行窗口 win + E 打开资源管理窗口 (计算机) shift + 鼠标右击 + select 在此处打开命令窗口 可在资源管理目录下打开dos命令 windo ...

  4. C++ tinyXml直接解析XML字符串

    转载:http://www.cnblogs.com/1024Planet/p/4401929.html <?xml version=\"1.0\" encoding=\&qu ...

  5. Duilib 实现右下角弹出像QQ新闻窗口,3秒后自动关闭(一)

    转载:https://blog.twofei.com/667/ 自绘或子类化控件时,有时需要处理鼠标进入(MouseEnter)/鼠标离开(MouseLeave)/鼠标停留(MouseHover)消息 ...

  6. VC++ PathFindFileName函数,由文件路径获得文件名

    1.PathFindFileName函数的作用是返回路径中的文件名. PTSTR PathFindFileName( __in PTSTR pPath ); pPath是指向文件路径字符串的指针,函数 ...

  7. linux下保存下位机输出的串口信息为文件

    linux下保存下位机输出的串口信息为文件 1.stty -F /dev/ttyUSB0 raw (转换成raw模式) 2.stty -F /dev/ttyUSB0 speed 115200 (设置波 ...

  8. POJ 3164 Command Network(最小树形图模板题+详解)

    http://poj.org/problem?id=3164 题意: 求最小树形图. 思路: 套模板. 引用一下来自大神博客的讲解:http://www.cnblogs.com/acjiumeng/p ...

  9. UVa 12108 特别困的学生

    https://vjudge.net/problem/UVA-12108 题意:给出n个学生的“清醒—睡眠”周期和初始时间点,每个学生在睡眠时需要判断全班睡觉人数是否严格大于清醒人数,否则在坚持一个清 ...

  10. 正则表达式及R字符串处理之终结版

    http://yphuang.github.io/blog/2016/03/15/regular-expression-and-strings-processing-in-R/ 0.动机:为什么学习字 ...