예제 #1
0
파일: Timer.php 프로젝트: abc2001x/timer
 /**
  * 添加定时任务,数据库中,队列中
  * @author wugx
  * @version     1.0
  * @date        2015-11-15
  * @anotherdate 2015-11-15T03:51:58+0800
  * @param       [type]                $fullClassNameAndMethod \namespace\classname:method
  * @param       int                   $second                 执行时间戳
  * @param       array                 $params                 参数
  */
 public function addTask($fullClassName, $methodName, $exec_time, $params = [])
 {
     if (!method_exists($fullClassName, $methodName)) {
         return false;
     }
     // echo '添加任务:'.self::$min_exec_time.PHP_EOL;
     $model = new TimerModel();
     $model->class = $fullClassName;
     $model->method = $methodName;
     $model->params = json_encode($params);
     $model->exec_time = $exec_time;
     if ($model->save()) {
         // $this->tasks->test($model);
         // self::setMinExecTime($model->exec_time);
         // $que = self::$tasks;
         // echo $model->id.'队列:'.json_encode($model).PHP_EOL;
         // $task = json_decode(json_encode($model->toArray()));
         $this->tasks->insert($model);
         //添加新任务到队列
         $this->setExecutor();
         //设置定时器
         return $model;
     } else {
         echo '保存失败..' . PHP_EOL;
         return false;
     }
 }