任务调度
当我第一次听到任务调度的时候, 我发现这个概念完全令人折服,正是因为这个激励我在PHP中实现了它. 同时我发现任务调度真正非常的令人惊叹:在令人敬畏的代码和一大堆乱代码之间只有一线之隔,我认为任务调度恰好处在这条线上, 不多不少.
举例 来说 明使用 任务调度
当你生产一些 数据 但是不必要 直接 入库的时候
你可以这样去做
你可以吧 这些数据 隔一天的时候查询展现的出来
你需要的做的事情 就是 把今天的数据 缓存起来
然后 用任务调度 存储起来
然后任务调度 存储进去
听着 是不是 感觉很蠢 为什么不直接 入库
当你的服务器 硬件 不够用的时候 产生 大批量的数据的时候
你可能出现 mysql 实物锁的时候 会丢失 一些数据
你的进程
使用任务调度的是 把今天的数据 一起 12点00的时候入库
不说废话了 其实我也是个渣渣 (仁者见仁)
//生成文件 大家都懂
php artisan make:console 你的任务名称 (console提示无此命令的话,改用 command)
protected $signature = ‘你的任务名称’;
/**
* The console command description.
*
* @var string
*/
protected $description = ‘备注 ‘;
自带 传参
-自定义命令文件实现 修改:
- 主要:
-配置(命令名,及参数,描述等信息):
protected $signature = 'email:send {1}';//传入1个参数
protected $signature = 'email:send {1}{2}'; //传入2个参数,个数按 "," 算,逗号分割几个值,代表有几个入参 !import
Kernel.php 文件
protected $commands = [
Commands\name::class,
] 调度 的
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
try {
$schedule->command(‘name’)->everyMinute()->withoutOverlapping();
} catch (\Exception $e) {
// $this->SaveCrontabRecord('抛出异常', $e->getMessage());
}
}
其实简单的任务命令 就可以用了
php artisan name 是不是 感觉很有成就感