public static function parse($file) { /*{{{*/ if (!file_exists($file) || filesize($file) === 0) { return false; } $data = json_decode(file_get_contents($file), true); self::$check_sum = md5(json_encode($data)); if (empty($data)) { return array(); } $execute_plan = array(); foreach ($data as $task) { $task = CronTask::createTask($task['task'], $task['user'], $task['id'], $task['running_user']); if ($task) { $execute_plan[] = $task; } } return $execute_plan; }
public function updateTasks() { /*{{{*/ // Get new file status every time. clearstatcache(); if (!file_exists($this->conf_file) || filesize($this->conf_file) === 0) { unset($this->task_queue); $this->task_queue = null; return false; } $old_check_sum = CronPlanParser::$check_sum; $task_list = CronPlanParser::parseFile($this->conf_file); $new_check_sum = CronPlanParser::$check_sum; if ($old_check_sum != $new_check_sum) { foreach ((array) $task_list as $task) { CronLogger::info('New tasks: [' . $task->rule . ']'); } unset($this->task_queue); $this->task_queue = $task_list; } unset($task_list); return true; }
function show_cron_tasks($conf_file) { /*{{{*/ $task_list = CronPlanParser::parse($conf_file); foreach ((array) $task_list as $task) { if ($task) { color_echo($task->rule . "\n", 'green'); } } return true; }