static function load_config() { $time = time(); $config = (include ROOT_PATH . DS . 'config.php'); foreach ($config as $id => $task) { // 先支持秒(, *) 这两种 $ret = ParseCrontab::parse($task["time"], $time); // 设置每秒的任务 foreach ($ret as $sec) { self::$turntable[$sec][$id] = $task; } } }
/** * 检查时间是否运行 * * @param array $time * @param int */ protected function getRunTime(array $conf) { $timestamp = time(); if (isset($conf['interval'])) { return ParseInterval::parse($conf, $timestamp); } elseif (isset($conf['crontab'])) { //var_dump($conf['crontab']); //while (true) { //$t = microtime(true); $time = ParseCrontab::parse($conf, $timestamp); //echo "nowIs :" . date('Y-m-d H:i:s', $timestamp) . "\t" . $time . " : " . date('Y-m-d H:i:s', $time) . "\tuseTime:" . // (microtime(true) - $t) . "\n"; return $time; //$timestamp += 1; //usleep(50000); //} } return 9999999999.0; }
/** * 根据配置载入需要执行的任务 */ public static function load_config() { $time = time(); $config = self::$tasksHandle->getTasks(self::$taskParams); foreach ($config as $id => $task) { $ret = ParseCrontab::parse($task["rule"], $time); if ($ret === false) { Main::log_write(ParseCrontab::$error); } elseif (!empty($ret)) { TickTable::set_task($ret, array_merge($task, array("id" => $id))); } } }
/** * 根据配置载入需要执行的任务 */ public static function load_config() { $time = time(); $config = LoadConfig::get_config(); foreach ($config as $id => $task) { $ret = ParseCrontab::parse($task["time"], $time); if ($ret === false) { Main::log_write(ParseCrontab::$error); } elseif (!empty($ret)) { TurnTable::set_task($ret, array_merge($task, array("id" => $id))); } } TurnTable::turn(); }