/** * * @param string $taskName * @param array $configs * @return Task_log */ public static function getInstance($taskName = null, array $configs = null) { if (null == self::$_instance) { self::$_instance = new self($taskName, $configs); } return self::$_instance; }
/** * */ public function getLogger() { if (null === $this->_logger) { $this->_logger = Task_Logger::getInstance($this->_name, $this->_options['log']); } return $this->_logger; }
// 处理脚本传入参数 $params = array(); foreach ($argv as $val) { if (strpos($val, '--') !== 0 && false === strpos($val, '=')) { continue; } list($k, $v) = explode('=', $val); $k = str_replace('--', '', $k); if (in_array($k, array('mode', 'limit', 'interval'))) { $config['task'][$taskName][$k] = $v; continue; } $params[$k] = $v; } // logger $logger = Task_Logger::getInstance($taskName, $config); $className = $config['task'][$taskName]['classname']; set_error_handler('errorHandler'); try { $task = Task_Task::factory($className, $config['task'][$taskName]); $task->setName($taskName)->setOptions($config)->setParams($params)->start(); } catch (Task_Exception $e) { $logger->error($e->getMessage()); } function errorHandler($errno, $errstr, $errfile, $errline) { global $logger, $task; if (!isset($logger)) { return; } if (isset($task) && $task instanceof Task_Abstract) {