[译]Laravel 5.0 之事件调度程序 (定时任务)

本文译自 Matt Stauffer 的系列文章.


关于 Laravel 5.0 的事件调度程序(可以理解为定时任务),Eric Barnes 有一篇很长的文章。我这篇文章则会尽量简短:

Laravel 5.0 新增了一个框架内置的 cron 风格的令人难以置信的调度程序(与 Indatus 的 Dispatcher 类似)。只要在服务器上设置一个每分钟调用 artisan schedule:run 的 cron job, 一切就准备就绪了。

*/1 * * * * php /path/to/artisan schedule:run

举个例子,通过绑定下面的事件,可以实现每天自动清理密码提示记录:

$schedule
    ->command('auth:clear-reminders') // 清理密码提示
    ->daily() // 每天执行
    ->sendOutputTo($logPath) // 把输出写入日志
    ->emailOutputTo('me@me.com'); // 把输出发到指定邮箱

你可以通过 command() 来调用 artisan 命令, call 来调用方法或函数, 或者 terminal() 来执行单行命令脚本:

$schedule->call('YourClass@someMethod')->twiceDaily();

$schedule->call(function() {
    // Do stuff
})->everyFiveMinutes();

还可以借助回调来决定什么时候执行或不执行某些操作,通过 when() 或者 skip() 实现:

$schedule
    ->call('Mailer@BusinessDayMailer') // 执行类方法
    ->weekdays() // 周一到周五执行
    ->skip(function(TypeHintedDeciderClass $decider) { // 如果是节假日则跳过
        return $decider->isHoliday();
    });

这次的介绍非常简单,因为常用功能就是这么容易。但如果你需要全面理解这一新特性的话,可以阅读 Eric 在 Laravel-News 发表的文章: Laravel 5 Scheduler.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏西枫里博客

关机后远程唤醒的配置,简单实现广域网远程开机和连接

出门在外经常需要家里或者办公室电脑里面的资料。通常通过远程桌面等控制类软件连接。当家里没人,没人开电脑就麻烦了,如果让家里电脑始终开着浪费能源,所以远程桌面...

45320
来自专栏君赏技术博客

模块化架构你为什么这么火,让我如此亲睐你?

前几天就开始研究了关于新项目的架构,也研究了模块化架构和关于Cocoapods私有库的研究。

17230
来自专栏逸鹏说道

大公司都有哪些开源项目之腾讯

1.WeUI 为微信Web服务量身设计 WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知...

51860
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(二十三):个人信息相关页面配置

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

26840
来自专栏编程坑太多

『中级篇』镜像的发布(18)

14960
来自专栏影子

给Ionic写一个cordova(PhoneGap)插件

496100
来自专栏FreeBuf

如何利用Microsoft Edge漏洞获取本地文件?

在2015年,微软发布了Edge浏览器。当它最初被开发时,它被命名为Project Spartan。

11820
来自专栏互联网杂技

程序员保证能笑出腹肌

客户需求 vs 最终产品 ? requirements vs. implementation 程序员的一天 ? The Programmers life 寂寞...

38870
来自专栏FreeBuf

看我如何窃取Messenger.com用户登录认证随机数并获得15000美元漏洞赏金

www.messenger.com是Facebook旗下即时通讯软件Messenger官网,该网站中添加了基于随机数认证( nonce based login ...

22950
来自专栏13blog.site

Java开源博客My-Blog之mysql容器重复初始化的严重bug修复过程

写在前面的话 My Blog项目已经开源了两个多月,也收获了不少star,在这里谢谢各位朋友的建议及帮助。由于个人原因,这个开源项目最初的定位其实是一个dock...

36170

扫码关注云+社区

领取腾讯云代金券