예제 #1
0
파일: Logger.php 프로젝트: bjtenao/tudu-web
 /**
  *
  * @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;
 }
예제 #2
0
 /**
  *
  */
 public function getLogger()
 {
     if (null === $this->_logger) {
         $this->_logger = Task_Logger::getInstance($this->_name, $this->_options['log']);
     }
     return $this->_logger;
 }
예제 #3
0
파일: run.php 프로젝트: bjtenao/tudu-web
// 处理脚本传入参数
$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) {