Laravel框架——任务调度(cron)
准备:
在服务的/var/spool/cron/root文件中添加代码
cd /var/spool/cron/root
添加以下代码
* * * * * phppath 项目路径/artisan schedule:run >> /dev/null 2>&1
打印出定时任务列表查看是否添加成功
crontab -u root -l
如果已经使用了绝对路径还是不执行,那就直接在命令行输入/usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev/null 2>&1,看看有没有执行,如果没有执行,那就是laravel代码的问题
如果不知道php在什么地方,在命令行输入which php,就会提示你php安装在什么位置了。
1.创建Class
php artisan make:console Classname
2.修改Classname.php文件
protected $signature = 'classname';
事件操作写在handle()方法中
3.修改Kernel.php
添加$commands数组:
Commands\Classname::class,
在schedule方法中调用以及设置条件:
$schedule->command('classname')
->hourly();
everyMinute(); 每分钟运行一次任务
everyFiveMinutes(); 每五分钟运行一次任务
everyTenMinutes(); 每十分钟运行一次任务
everyThirtyMinutes(); 每三十分钟运行一次任务
hourly(); 每小时运行一次任务
daily(); 每天凌晨零点运行任务
dailyAt('13:00'); 每天13:00运行任务
twiceDaily(1, 13); 每天1:00 & 13:00运行任务
weekly(); 每周运行一次任务
monthly(); 每月运行一次任务
quarterly(); 每个季度运行一次
yearly(); 每年运行一次
如果需要某天的那个时间:
->at('13:00') //13点才会执行
上面这些方法可以和额外的约束一起联合起来创建一周特定时间运行的更加细粒度的调度,例如:
weekdays(); 只在工作日运行任务
sundays(); 每个星期天运行任务
mondays() 每个星期一运行任务
tuesdays(); 每个星期二运行任务
wednesdays(); 每个星期三运行任务
thursdays(); 每个星期四运行任务
fridays(); 每个星期五运行任务
saturdays(); 每个星期六运行任务
when(Closure); 基于特定测试运行任务
when方法用于限制任务在通过给定测试之后运行。换句话说,如果给定闭包返回true,只要没有其它约束条件阻止任务运行,该任务就会执行:
$schedule->command('inspire')
->hourly()
->when(function () {
return true;
});
reject方法和when相反,如果reject方法返回true,调度任务将不会执行。
避免任务重叠
默认情况下,即使前一个任务仍然在运行调度任务也会运行,要避免这样的情况,可使用withoutOverlapping方法:
$schedule->command('inspire')
->hourly()
->withoutOverlapping();
Laravel调度器为处理调度任务输出提供了多个方便的方法。首先,使用sendOutputTo方法,你可以发送输出到文件以便稍后检查:
$schedule->command('emails:send')
->daily()
->sendOutputTo($filePath);
任务钩子:
使用before和after方法,你可以指定在调度任务完成之前和之后要执行的代码:
$schedule->command('emails:send')
->daily()
->before(function () {
// Task is about to start...
})
->after(function () {
// Task is complete...
});
错误检查:
如果按照上面写了,还是没有定时执行:运行pgrep crond,看看是否打印出PID,如果没有就意味着没有运行
运行crond restart重启cron
Laravel框架——任务调度(cron)的更多相关文章
- cron以及在laravel中使用cron
yum install vixie-cron yum install crontabs /bin/systemctl restart crond.service #启动服务 /bin/systemct ...
- Laravel框架定时任务2种实现方式示例
本文实例讲述了Laravel框架定时任务2种实现方式.分享给大家供大家参考,具体如下: 第一种 1.生成一个commands文件 > php artisan make:command test ...
- [php]laravel框架容器管理的一些要点
本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. ...
- php的laravel框架快速集成微信登录
最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...
- laravel 框架使用总结 limit
后台开发就是数据的各种处理很多时候需要做到分页,但是在laravel中使用limit做分页的时候会出现问题,偏移量和每页的条数放进去好像不好使了 下面推荐给大家一种在laravel框架中非常好用的写法 ...
- laravel框架总结(十) -- 返回值
以前用CI框架对于返回值没有过多关注,但是发现使用laravel框架的时候出现了一些小问题,特意实践总结了一些常用情形,希望对大家有所帮助 先理解几个概念: 1>StdClass 对象=&g ...
- Laravel框架数据库CURD操作、连贯操作使用方法
Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍. Laravel是一套简洁.优雅的PHP Web开 ...
- [麦先生]Laravel框架实现发送短信验证
今天在做到用户注册和个人中心的安全管理时,我借助实现第三方短信平台在Laravel框架中进行手机验证的设置; 由于我们做的是一个为客户提供医疗咨询和保健品网站,所以对客户个人隐私的保护显得尤为重要, ...
- [麦先生]初学Laravel框架与ThinkPHP框架的不同(2)
在经过了一段时间的开发后,我对Laravel框架的认识又在逐步的加深,对于这个世界占有量NO.1的框架... 我想说,我已经在逐步的感受到他的恐怖之处... 一.建表--Laravel在数据库建表上 ...
随机推荐
- js两个时间比较
var applyStart = $("#ApplyStart").val().replace(/-/g,'/'); var applyEnd = $("#ApplyEn ...
- jquerymobile知识点:select的动态帮定
代码: <div data-role="navbar"> <ul> <li> <select name="select-choi ...
- PureMVC(JS版)源码解析(十):Controller类
这篇博客我们继续讲解PureMVC的三大核心类(View/Controller/Model)——Controller类.根据PureMVC模块设计,Controller类保存所有的Comm ...
- android开发之PreferenceScreen使用详解
是在惭愧,学习android也有一段时间了,今天才是第一次接触PreferenceScreen.记录下来,与大家分享. 本文参考:http://lovezhou.iteye.com/blog/1020 ...
- Java基础知识强化之IO流笔记28:BufferedOutputStream / BufferedInputStream(字节缓冲区流) 之BufferedOutputStream写出数据
1. BufferedOutputStream / BufferedInputStream(字节缓冲区流)的概述 通过定义数组的方式确实比以前一次读取一个字节的方式快很多,所以,看来有一个缓冲区还是非 ...
- Android(java)学习笔记171:Service生命周期
1.Service的生命周期 Android中的Service(服务)与Activity不同,它是不能和用户交互,不能自己启动的,运行在后台的程序,如果我们退出应用的时候,Servic ...
- value must be omitted for boolean attributes
jsx文件中 html5一些标签的属性是boolean的,<div hidden="true">是不被允许的,要改成<div hidden>或<div ...
- WPF--ComboBox数据绑定
WPF--ComboBox数据绑定 0-在ComboBox中显示图片: <ComboBox Height="33" HorizontalAlignment="Rig ...
- .NET设计模式(4):建造者模式(Builder Pattern)
):建造者模式(Builder Pattern) .建造者模式的使用使得产品的内部表象可以独立的变化.使用建造者模式可以使客户端不必知道产品内部组成的细节. 2.每一个Builder都相对独立, ...
- 字符编码笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
转载:http://witmax.cn/character-encoding-notes.html 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问 ...