- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
服务 ―― 任务调度
服务 ―― 任务调度
服务 —— 任务调度
1、简介
在以前,开发者需要为每⼀个需要调度然后添加这些Cron条⽬。Laravel命令调度器允
许你平 ⽽又富有表现⼒地在Laravel 中定义命令调度,并且服务器上只需要⼀个Cron
条⽬即可。
任务调度定义在app/Console/Kernel.php⽂件的schedule⽅法中,该⽅法中已
经包含了⼀个⽰例。你可以⾃由地添加你需要的调度任务到Schedule对象。
1.1 开启调度
下⾯是你唯⼀需要添加到服务器的Cron条⽬:
* * * * * php /path/to/artisan schedule:run 1 /dev/null 21
该Cron将会每分钟调⽤Laravel命令调度,然后,Laravel评估你的调度任务并运⾏到期
的任务。
2、定义调度
你可以在App\Console\Kernel类的schedule⽅法中定义所有调度任务。开始之
前,让我们看⼀个调度任务的例⼦,在这个例⼦中,我们将会在每天午夜调度⼀个被
调⽤的闭包。在这个闭包中我们将会执⾏⼀个数据库查询来清空表:
?php
na espace App\Console;
use DB;
use Illu inate\Console\Scheduling\Schedule;
use Illu inate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel{
/**
* 应⽤提供的Artisan命令
*
* @var array
*/
protected $co ands = [
App\Console\Co ands\Inspire,
];
/**
* 定义应⽤的命令调度
*
* @para \Illu inate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule-call(function () {
DB::table(recent_users)-delete();
})-daily();
}
}
除了调度闭包调⽤外,还可以调度Artisan命令和操作系统命令。例如,可以使
⽤co and⽅法来调度⼀个Artisan命令:
$schedule-co and(e ails:send --force)-daily();
exec命令可⽤于发送命令到操作系统:
$schedule-exec(node /ho e/forge/script.js)-daily();
2.1 调度常⽤选项
当然,你可以分配多种调度到任务:
⽅法 描述
-cron(* * * * *); 在⾃定义Cron调度上运⾏任务
-everyMinute(); 每分钟运⾏⼀次任务
-everyFiveMinutes(); 每五分钟运⾏⼀次任务
-everyTenMinutes(); 每⼗分钟运⾏⼀次任务
-everyThirtyMinutes();每三⼗分钟运⾏⼀次任务
-hourly(); 每⼩时运⾏⼀次任务
-daily(); 每天凌晨零点运⾏任务
-dailyAt(13:00); 每天13:00运⾏任务
-twiceDaily(1, 13); 每天1:00 13:00运⾏任务
-weekly(); 每周运⾏⼀次任务
- onthly(); 每⽉运⾏⼀次任务
这些⽅法可以和额外的约束⼀起联合起来创建⼀周特定时间运⾏的更加细粒度的调
度,例如,要每周⼀调度⼀个命令:
$schedule-call(function () {
// 每周星期⼀13:00运⾏⼀次...
})-weekly(
文档评论(0)