请教各位大神,phpkafkaconsume端如何取消息。
读取方法:
$readable=@stream_select($read,$null,$null,$this->recvTimeoutSec,$this->recvTimeoutUsec);
if($readable>0){$remainingBytes=$len;$data=$chunk='';while($remainingBytes>0){$chunk=fread($this->stream,$remainingBytes);if($chunk===false){$this->close();thrownewKafka_Exception_Socket_EOF('Couldnotread'.$len.'bytesfromstream(nodata)');}if(strlen($chunk)===0){//ZerobytesbecauseofEOF?if(feof($this->stream)){$this->close();thrownewKafka_Exception_Socket_EOF('UnexpectedEOFwhilereading'.$len.'bytesfromstream(nodata)');}//Otherwisewaitforbytes$readable=@stream_select($read,$null,$null,$this->recvTimeoutSec,$this->recvTimeoutUsec);if($readable!==1){thrownewKafka_Exception_Socket_Timeout('Timedoutreadingsocketwhilereading'.$len.'byteswith'.$remainingBytes.'bytestogo');}continue;//attemptanotherread}$data.=$chunk;$remainingBytes-=strlen($chunk);}if($len===$remainingBytes||($verifyExactLength&&$len!==strlen($data))){//couldn'treadanythingatallORreachedEOFsoonerthanexpected$this->close();thrownewKafka_Exception_Socket_EOF('Read'.strlen($data).'bytesinsteadoftherequested'.$len.'bytes');}
抛出异常:Kafka_Exception_Socket_EOF:UnexpectedEOFwhilereading4bytesfromstream(nodata)#0
请教各位大神,如何解决。不胜感激。
如果是循环任务的话当kafka没有消息产生的时候,要sleep(1)继续查询队列!