Example #1
0
 public static function getInstance()
 {
     if (!self::$Instance) {
         self::$Instance = new TickTable();
     }
     return self::$Instance;
 }
 /**
  * 运行任务
  * @param $interval
  * @return bool
  */
 public static function do_something($interval)
 {
     //是否设置了延时执行
     if (!empty(self::$delay)) {
         foreach (self::$delay as $pid => $task) {
             if (time() >= $task["start"]) {
                 (new Process())->create_process($task["task"]["id"], $task["task"]);
                 unset(self::$delay[$pid]);
             }
         }
     }
     $tasks = TickTable::get_task();
     if (empty($tasks)) {
         return false;
     }
     foreach ($tasks as $task) {
         if (isset($task["unique"]) && $task["unique"]) {
             if (isset(self::$unique_list[$task["id"]]) && self::$unique_list[$task["id"]] >= $task["unique"]) {
                 continue;
             }
             self::$unique_list[$task["id"]] = isset(self::$unique_list[$task["id"]]) ? self::$unique_list[$task["id"]] + 1 : 0;
         }
         (new Process())->create_process($task["id"], $task);
     }
     return true;
 }