Beispiel #1
0
 public function consume($partition)
 {
     if (!$this->consumers) {
         throw new \Exception("Topic " . $this->name . " has no registered consumers");
     }
     if (!$this->rdKafkaConsumerTopic) {
         throw new \Exception("Topic " . $this->name . " is not registered as consumer topic");
     }
     $this->rdKafkaConsumerTopic->consumeStart($partition, RD_KAFKA_OFFSET_BEGINNING);
     while ($message = $this->rdKafkaConsumerTopic->consume($partition, 10000)) {
         foreach ($this->consumers as $consumer) {
             $consumer->consume($message->topic_name, $message->partition, $message->offset, $message->key, $message->payload);
         }
     }
     $this->rdKafkaConsumerTopic->consumeStop($partition);
 }
 public function consumeStop($partition)
 {
     $this->consumerTopic->consumeStop($partition);
     $this->isConsuming = false;
 }