tablePrefix, SUBSITE_DB); }else{ parent::__construct($model, $this->tablePrefix); } } //获取待执行任务 public function getTask() { //按顺序获取任务 $has_run = $this->where(['status'=>"1"])->count(); if($has_run > 0){ return false; } $task = $this->field("id,params")->where(['status'=>"0"])->order("id asc")->find(); if(empty($task)){ return false; }else{ //修改状态为执行中 $this->save(['id'=>$task['id'],'status'=>"1","start_time"=>time()]); return $task; } } //更新 public function updateTask($params) { $this->save($params); } //获取同类型任务最后一次操作时间 public function getTypeLastTask($type) { $task = $this->field("end_time")->where(['status'=>"2",'type'=>$type])->order("id desc")->find(); if(empty($task)){ return false; }else{ return date("Y-m-d H:i:s",$task['end_time']); } } //插入任务 public function addTask($type,$params,$need_path=true) { if(!$this->isCanAddTask($type)) return false; if($need_path){ if(IS_WIN){ $p = explode(':',ROOTTTTT); $params = "{$p[0]}:&".'cd "'.$p[1].'"&'.$params; }else{ $params = "cd ".ROOTTTTT.";".$params; } } $params = rtrim($params,";").' 2>&1'; $save = [ "uid"=>$_SESSION['onethink_admin']['user_auth']['uid'], "created_time"=>time(), "params"=>$params, "type"=>$type ]; return $this->add($save); } //验证任务 public function isCanAddTask($type) { $task = $this->field("end_time")->where(['status'=>["in","0,1"],'type'=>$type])->order("id desc")->find(); if(!empty($task)){ return false; } return true; } }