コード例 #1
0
ファイル: Consumer.php プロジェクト: efisuby/php-kafka
 /**
  * fetch message to broker
  *
  * @access public
  * @return bool|Protocol\Fetch\Topic
  */
 public function fetch()
 {
     $data = $this->_formatPayload();
     if (empty($data)) {
         return false;
     }
     $streams = array();
     foreach ($data as $host => $requestData) {
         $connArr = $this->client->getStream($host);
         $conn = $connArr['stream'];
         $encoder = new Protocol\Encoder($conn);
         $encoder->fetchRequest($requestData);
         $streams[$connArr['key']] = $conn;
     }
     $fetch = new Protocol\Fetch\Topic($streams, $data);
     // register fetch helper
     $freeStream = new Protocol\Fetch\Helper\FreeStream($this->client);
     $freeStream->setStreams($streams);
     Protocol\Fetch\Helper\Helper::registerHelper('freeStream', $freeStream);
     // register partition commit offset
     $commitOffset = new Protocol\Fetch\Helper\CommitOffset($this->client);
     $commitOffset->setGroup($this->group);
     Protocol\Fetch\Helper\Helper::registerHelper('commitOffset', $commitOffset);
     $updateConsumer = new Protocol\Fetch\Helper\Consumer($this);
     Protocol\Fetch\Helper\Helper::registerHelper('updateConsumer', $updateConsumer);
     return $fetch;
 }