Пример #1
0
 /**
  *自动加载类 
  */
 private function autoload($className)
 {
     $jobFile = ROOT_PATH . 'job' . DS . $className . '.php';
     if (file_exists($jobFile)) {
         include $jobFile;
     } else {
         Main::log('工作类' . $className . '不存在');
     }
 }
Пример #2
0
 /**
  *注册监听的信号
  */
 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();
     });
 }