everyMinute(); //每分钟执行一次 } /** * 执行任务 * @return mixed */ protected function execute() { try { $this->patrol(); $this->addPatrolTask(); $this->patrolStart(); $this->patrolPlan(); } catch (\Exception $e) { trace($e->getMessage()); } } public function patrol(){ set_time_limit(0); ini_set("memory_limit","1024M"); (new PatrolTask())->timer_action(); } //近12个小时的巡更任务加入到任务栏 public function addPatrolTask(){ (new PatrolTask())->addPatrolTask(); } // 巡更任务将要开始提醒 每分钟执行一次 public function patrolStart(){ $curTime = date('Y-m-d H:i').':00'; $users = Db::name('patrol_task_user') ->alias('ptu') ->join('patrol_task pt','pt.id = ptu.patrol_task_id') ->where('pt.del',0) ->where('pt.status',0) ->where('pt.start_time',$curTime) ->field('ptu.user_id,patrol_mode') ->select(); $userids1 = $userids2 = $userids3 = $userids4 = []; foreach ($users as $k=>$v){ if($v['patrol_mode'] == 1 && !in_array($v['user_id'],$userids1)){ $userids1[] = $v['user_id']; }else if($v['patrol_mode'] == 2 && !in_array($v['user_id'],$userids2)){ $userids2[] = $v['user_id']; }else if($v['patrol_mode'] == 3 && !in_array($v['user_id'],$userids3)){ $userids3[] = $v['user_id']; }else if($v['patrol_mode'] == 4 && !in_array($v['user_id'],$userids4)){ $userids4[] = $v['user_id']; } } if($userids1){ send_jpush($userids1,AppMsg::PUSH_PATROL,'您有新的巡更任务将要开始,请及时执行。'); } if($userids2){ send_jpush($userids2,AppMsg::PUSH_PATROL,'您有新的巡视任务将要开始,请及时执行。'); } if($userids3){ send_jpush($userids3,AppMsg::PUSH_PATROL,'您有新的巡查任务将要开始,请及时执行。'); } if($userids4){ send_jpush($userids4,AppMsg::PUSH_PATROL,'您有新的巡检任务将要开始,请及时执行。'); } } // 修改巡更计划状态 1分钟执行一次 public function patrolPlan(){ $curDay = date('Y-m-d'); Db::name('patrol_plan') ->where('del',0) ->where('status',0) ->where('start_time','<=',$curDay) ->update(['status'=>1,'update_time'=>date('Y-m-d H:i:s')]); Db::name('patrol_plan') ->where('del',0) ->where('status','in',[0,1]) ->where('end_time','<',$curDay) ->update(['status'=>2,'update_time'=>date('Y-m-d H:i:s')]); } }