示例#1
0
 private static function getBatchArray()
 {
     $_analyz = config::getAnalyz();
     $_analyz_count = count($_analyz);
     //只有一个线程时,作一个批次
     if (self::$forkCount < 2) {
         self::$forkCount = 1;
         return array($_analyz);
     }
     //线程数大于配置数,每个配置一个线程
     if ($_analyz_count <= self::$forkCount) {
         self::$forkCount = $_analyz_count;
         return array_chunk($_analyz, $_analyz_count, TRUE);
     }
     //平均分配置到线程数,最后一个线程分得最多个
     $_mod = $_analyz_count % self::$forkCount;
     if ($_mod == 0) {
         return array_chunk($_analyz, self::$forkCount, TRUE);
     } else {
         $_batchSlice = floor($_analyz_count / self::$forkCount);
         $array_pop = array_slice($_analyz, 0 - $_mod);
         $_analyz = array_diff_key($_analyz, $array_pop);
         $_batchArray = array_chunk($_analyz, $_batchSlice, TRUE);
         array_push($_batchArray, array_merge(array_pop($_batchArray), $array_pop));
         return $_batchArray;
     }
 }
示例#2
0
 public static function run()
 {
     $analyz = config::getAnalyz();
     if (!is_array($analyz) || count($analyz) < 1) {
         return '';
     }
     foreach ($analyz as $rName => $config) {
         self::analyzerRun($rName, $config);
     }
 }
示例#3
0
 public static function run()
 {
     config::getConfig();
     \SeasLog::setBasePath(config::getAnalyzerPath());
     if ($forkCount = config::getForkCount()) {
         coreRun\pcntl::setForkCount($forkCount);
         coreRun\pcntl::run();
     } else {
         coreRun\single::run();
     }
 }
示例#4
0
 public function __construct()
 {
     self::$_config = config::getAnalyzEmail();
 }