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在数据库建表上 ...
随机推荐
- 在code.org上自己写一个flappy bird游戏
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在code.org上自己写一个flappy bird游戏.
- SSO之CAS备忘
http://blog.chinaunix.net/uid-28380443-id-4740103.html 自己负责的公司基于CAS单点登录平台架构已经上线运行,很多细节的东西是时候备忘一下了,开源 ...
- 【美妙的Python之二】Python初步
美妙的Python之Python起步 简而言之: Python 是能你无限惊喜的语言,与众不同. 1.动态类型: Python是一种动态类型语言,不 ...
- 64位开源处理器Rocket该人士介绍
最近大概读一点UCB发布时间Rocket处理器的源代码,的每个文件的源代码的功能有一定的一般理解,Mark一点点. Rocket是一家64bit标量处理器,5第一阶段管道,用途risc-v指令集.综合 ...
- CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案
最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决. 方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如 ...
- android获取Mac地址和IP地址
获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法) //根据Wifi信 ...
- 第三天关于网页sip的学习。平台win7 64位 freeSwitch jssip架构web网络电话
上次我们出现了一种问题就是,当我们采用iis架构出jssipweb端的时候,我们无法注册freeswitch的电话.. 我们用别的客户端已经成功能够互通电话,可以录音,唯独使用jssip架构的web端 ...
- 9张思维导图学习Javascript(转)
思维导图小tips:思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维工具.思维导图运用图文并重的技巧,把各级主题的关系用相互隶属与相关的层级图表现出来 ...
- Linux中nat模式上不了网的问题怎么解决?
我是这么解决的
- 新浪微博failed to receive access token
这个问题很多人都遇到了,很多人发邮件我,我之前解决的时候也花了很大的代价,发现很多的都是抄袭,然后就是找不到答案,确实比较痛苦.避免大家跟我范一样的错误. 保证几个东西: 1.签名正确---非常重要. ...