Laravel5.3 定时任务重复执行怎么解决????
在Laravel5.3中添加了一个定时任务,每十分钟执行一次,,定时任务的功能是往数据库插入数据,,发现定时任务总是重复执行,求大神赐教
$schedule->call(function(){
\Log::info('test');
$is_empty_table = \DB::table('waybill_statistics')->count();
\Log::info('test_is_empty_table',array($is_empty_table));
if(!$is_empty_table){
$data = \DB::table('waybills')->select('company_id','route_id','division_id','driver_id','vehicle_id','date','status')->get()->toArray();
}else{
$last_data = \DB::table('waybill_statistics')->orderBy('id','desc')->take(1)->get();
\Log::info('test_max_waybill_statistics_id',array($last_data[0]->id));
$last_id_in_waybill = \DB::table('waybills')->where([['company_id',$last_data[0]->company_id],['route_id',$last_data[0]->route_id],['division_id',$last_data[0]->division_id],['driver_id',$last_data[0]->driver_id],['vehicle_id',$last_data[0]->vehicle_id],['date',$last_data[0]->date],['status',$last_data[0]->status]])->value('id');
\Log::info('test_last_id_in_waybill',array($last_id_in_waybill));
$data = \DB::table('waybills')->select('company_id','route_id','division_id','driver_id','vehicle_id','date','status')->where('id','>',$last_id_in_waybill)->get()->toArray();
}
for($i=0;$i<count($data);$i++){
$w_s = new Waybill_Statistics();
$w_s -> company_id = $data[$i] -> company_id;
$w_s -> route_id = $data[$i] -> route_id;
$w_s -> division_id = $data[$i] -> division_id;
$w_s -> driver_id = $data[$i] -> driver_id;
$w_s -> vehicle_id = $data[$i] -> vehicle_id;
$w_s -> date = $data[$i] -> date;
$w_s -> status = $data[$i] -> status;
$w_s -> count= 1;
$res = $w_s->save();
\Log::info('test_add_time',array(date('Y-m-d H:i:s')));
\Log::info('test_count',array($res->id));
}
})->everyTenMinutes();
推荐文章: