谈一点体会,就是在laravel 中使用自定义Artisan命令 ,一般用来与定时任务配合使用,这样子定时任务只需调用一个命令即可,简单方便。而不用写大量的定时任务具体操作代码
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
//还是利用curl 调用自己写的getTest接口
$schedule->call(function () {
$host = env('APP_URL','http://localhost:80'); //服务器主机的名称
$loginUrl = $host.'/login';
$dataUrl = $host.'/order/front/my/test';
$data = 'email=1@qq.com&password=111111';//登录数据,也是根据请求的login中的字段而定
$sh = curl_init();//初始化
curl_setopt($sh,CURLOPT_URL,$loginUrl);//设置登录接口的URL
curl_setopt($sh,CURLOPT_RETURNTRANSFER,true);//不直接打印结果
date_default_timezone_set('PRC');//设置这个参数,因为session有过期时间
curl_setopt($sh,CURLOPT_COOKIESESSION,TRUE);
curl_setopt($sh,CURLOPT_COOKIEFILE,"cookiefile");
curl_setopt($sh,CURLOPT_COOKIEJAR,"cookiefile");
curl_setopt($sh,CURLOPT_COOKIE,session_name().'='.session_id());
curl_setopt($sh,CURLOPT_HEADER,0);//不输出头信息
curl_setopt($sh,CURLOPT_FOLLOWLOCATION,1);//设置跳转
curl_setopt($sh,CURLOPT_POST,1);//设置提交方式
curl_setopt($sh,CURLOPT_POSTFIELDS,$data);//post提交数据
curl_exec($sh);//执行curl
curl_setopt($sh,CURLOPT_URL,$dataUrl);//URL
curl_setopt($sh,CURLOPT_RETURNTRANSFER,true);//不直接打印结果
curl_setopt($sh,CURLOPT_HEADER,0);//不输出头信息
curl_exec($sh);//执行curl
curl_close($sh);
})->everyMinute();
}
修改为:直接调用command就可以了
protected function schedule(Schedule $schedule)
{
// $schedule->command('UpdateRoadGroupMembers')
// ->dailyAt('00:00');
$schedule->command('UpdatePostStatus')
->everyFiveMinutes();
$schedule->command('signin:alert')->dailyAt('10:05');
}
链接:http://d.laravel-china.org/docs/5.2/artisan http://d.laravel-china.org/docs/5.2/scheduling