注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

~~

~~

 
 
 

日志

 
 

laravel 任务调度  

2015-07-31 14:56:26|  分类: laravel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

关于 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.

  评论这张
 
阅读(87)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018