Laravel-任务调度
来源:互联网 发布:清华 知乎 编辑:程序博客网 时间:2024/05/19 07:10
Laravel 命令调度器允许你在 Laravel 中对命令调度进行清晰流畅的定义,并且仅需要在服务器上增加一条 Cron 项目即可。
你的调度已经定义在 app/Console/Kernel.php
文件的 schedule
方法中。为了方便你开始,在该方法内包含了一个简单的例子。你可以随意增加调度到 Schedule
对象中。
1、唯一一个需要加入到服务器的 Cron 项目(注意这里path为项目绝对路径):
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
e.g. * * * * * php /home/vagrant/Code/test/artisan schedule:run >> /dev/null 2>&1
2、你可以将所有的计划任务定义在 App\Console\Kernel
类的 schedule
方法中。在开始之前,先让我们来看看一个任务的调度示例。在该例子中,我们计划了一个会在每分钟被调用的闭包。该闭包将插入一条数据:
<?phpnamespace App\Console;use Illuminate\Console\Scheduling\Schedule;use Illuminate\Foundation\Console\Kernel as ConsoleKernel;use Illuminate\Support\Facades\DB;class Kernel extends ConsoleKernel{ protected $commands = [ Commands\Inspire::class, ]; /** * 在这里定义你的计划任务 */ protected function schedule(Schedule $schedule) { //每分钟添加一条数据 $schedule->call(function () { $data = [ 'name'=>'myname'.rand(2,100), 'email'=>'myname'.rand(2,100).'@126.com', 'password'=>bcrypt('123456'), ]; DB::table('users')->insert($data); })->everyMinute(); }}
调度频率设置#
当然,你可以针对你的任务来分配多种调度计划:
->cron('* * * * * *');
在自定义的 Cron 调度运行该任务->everyMinute();
每分钟运行该任务->everyFiveMinutes();
每五分钟运行该任务->everyTenMinutes();
每十分钟运行该任务->everyThirtyMinutes();
每三十分钟运行该任务->hourly();
每小时运行该任务->daily();
每天午夜运行该任务->dailyAt('13:00');
每天的 13:00 运行该任务->twiceDaily(1, 13);
每天的 1:00 及 13:00 运行该任务->weekly();
每周运行该任务->monthly();
每月运行该任务->yearly();
每年运行该任务这些方法可以合并其它限制条件以生成更精确的调度。例如在某周的某几天运行调度。举个例子,计划一个每周周一的调度:
$schedule->call(function () { // 在每个礼拜一的 13:00 运行一次...})->weekly()->mondays()->at('13:00');
下方列出其它额外限制条件:
->weekdays();
限制任务在工作日->sundays();
限制任务在星期日->mondays();
限制任务在星期一->tuesdays();
限制任务在星期二->wednesdays();
限制任务在星期三->thursdays();
限制任务在星期四->fridays();
限制任务在星期五->saturdays();
限制任务在星期六->when(Closure);
限制任务基于一个为真的验证;为真验证限制条件#
when
方法可以用来判断是否要运行任务,主要基于一个指定的为真验证的运行结果。换句话说,如果指定的 闭包
返回 true
,且没有其它限制条件存在,那么这个任务将会被继续运行。
$schedule->command('emails:send')->daily()->when(function () { return true;});
当链式调用了 when
方法时,计划命令只有在所有的 when
条件返回 true
时才运行。
阅读全文
0 0
- Laravel 任务调度
- laravel任务调度测试
- Laravel-任务调度
- laravel 5.2 任务调度
- Laravel任务调度定时任务
- laravel 任务调度(定时执行任务)
- laravel 5.4 任务调度 之 定时任务
- laravel框架-任务调度-知识点总结
- laravel 在Windows 8.1的任务调度
- Windows10环境中 laravel任务调度 如何启动调度
- 使用laravel的任务调度(定时执行任务)
- laravel的任务调度和linux的计划任务
- Laravel5.4系列之Laravel 的任务调度功能
- laravel Task Scheduling(任务调度)在windows下的使用
- 调度任务
- 任务调度
- 任务调度
- 任务调度
- HDU 1159 Common Subsequence 最长公共子序列
- 比较独立的ViewHolder
- 面试OR笔试6——条件数列数
- JZOJ 5276 神奇的玩具
- max 相关学习
- Laravel-任务调度
- 垃圾陷阱codevs1684
- 数据结构实验之链表五:单链表的拆分
- http://www.linuxidc.com/Linux/2015-05/117920.htm
- webpack中的loader(待学习)
- C++(4):C++命名空间
- Unity)判断敌人是否位于主角正前方一定角度方位内
- Java程序优化的一些最佳实践
- 最大子序列和