Exemple #1
0
 private function __processMessages($messages)
 {
     $timeHelper = new CommonUtilRuntime();
     $timeHelper->start();
     if (!is_array($messages)) {
         return "f:" . __LINE__;
     }
     if (count($messages) > config('app')[Constants::ONCE_PROCESS_MESSAGE_MAX_COUNT]) {
         return "f:" . __LINE__;
     }
     // 数据池
     DBPools::default_Db_pools()->begin();
     if (config(Constants::ENABLE_SCHEDULE)) {
         // 定时器调用
         Manager::getInstance()->update();
     }
     foreach ($messages as $value) {
         $this->__processMessage($value);
     }
     DBPools::default_Db_pools()->save();
     DBPools::default_Db_pools()->end();
     // 处理消息返回
     $returnMessages = array();
     while (NULL != ($returnMessage = CommonUtilMessage::popS2CMessage())) {
         $returnMessages[] = $returnMessage->toArray();
     }
     // 没有消息返回
     if (count($returnMessages) == 0) {
         return "f:" . __LINE__;
     }
     $compressedMessage = CommonUtilMessage::encodeMessage($returnMessages);
     $timeHelper->stop();
     CommonUtilLog::record(CommonUtilLog::DEBUG, 'command_run_oncetime', ['totaltime' => $timeHelper->spent(), 'core_time' => array_sum($this->call_commands) . 'ms', 'cmd' => $this->call_commands]);
     return $compressedMessage;
 }