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在数据库建表上 ...
随机推荐
- 准备在新项目中使用pgsql【资源收集】
pgsql大象数据库 是我最近在关注的一款开源数据库,可以自由修改,没那么多限制,准备在新项目中使用 postgresql中国下载站 http://www.postgres.cn/download#s ...
- git与svn的区别-小结一下
1)Git是分布式的,SVN不是: 这 是GIT和其它非分布式的版本控制系 统,例如SVN,CVS等,最核心的区别.好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并 ...
- 驱动lx4f120h,头文件配置,没有完全吃透,望指点
来了块开发板,没接触过,希望能驱动起来,就首先试一下驱动LED,没想到刚开始建好工程问题就来了 使用GPIO驱动,首先想到的是关于GPIO的头文件gpio.h,事实上这个还不够,还需要设置一下系统的配 ...
- 解决Qt5使用SSL的“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”错误
在使用Qt的网络组件连接某些服务器时, 会提示"qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method"的错误 ...
- Excel中如何查找并列出所有链接(外部数据链接)?
在 Excel 中,有时会需要创建外部链接来引用其他工作簿的单元格内容,但是如果想要找出所有链接并且还要将这些外部数据链接列在一个工作簿当中是有点难度的.下面我会介绍一些快捷方法,不仅能够快速帮你找出 ...
- 怎样克服 JavaScript 框架疲劳?
[编者按]Tero Parviainen 著有 Build Your Own AngularJS,曾两次组织 Clojure CUP 竞赛,在 Twitter 上有近两千名关注者. 在本文中.Tero ...
- 实现FTP断点续传
应用需求: 网盘开发工作逐步进入各部分的整合阶段,当用户在客户端修改或新增加一个文件时,该文件要同步上传到服务器端对应的用户目录下,因此针对数据传输(即:上传.下载)这一块现在既定了三种传输方式,即: ...
- Linux多网卡多IP配置
echo "210 local100" >> /etc/iproute2/rt_tables echo "220 local200" >> ...
- MVVM架构的一次实践,重写iOS头条客户端
前言: 一个iOS头条APP,使用MVVM架构实现,代码中有注释,封装了AFN网络请求,解媾代码,使用起来非常方便.用最经典的TableView展示,后续不断更新,喜欢就star或fork一下,有问题 ...
- C# DataTable怎么合计字段
DataTable dt = new DataTable(); var age=dt.Compute("avg(age)",""); var height =d ...