/** *自动加载类 */ private function autoload($className) { $jobFile = ROOT_PATH . 'job' . DS . $className . '.php'; if (file_exists($jobFile)) { include $jobFile; } else { Main::log('工作类' . $className . '不存在'); } }
/** *注册监听的信号 */ private static function registerSignal() { swoole_process::signal(SIGCHLD, function ($signo) { //SIGCHLD,子进程结束时,父进程会收到这个信号 //这里可以做任务执行完后的事情,比如:改变任务状态,统计任务执行时间 while ($status = swoole_process::wait(false)) { $task = self::$taskList[$status['pid']]; $startTime = $task['start']; self::updateTasks($task); $runTime = time() - $startTime; Main::log($task['task']['name'] . "执行了" . $runTime . "秒"); unset(self::$taskList[$status['pid']]); } }); swoole_process::signal(SIGINT, function ($signo) { self::resetStatus(); unlink(Main::$pidFile); exit; }); swoole_process::signal(SIGUSR1, function () { self::init(); }); }