mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
retry when metadata empty
This commit is contained in:
parent
61486a82aa
commit
531b658f8e
2 changed files with 20 additions and 1 deletions
|
@ -459,7 +459,8 @@ int SrsKafkaProducer::request_metadata()
|
||||||
senabled.c_str(), sbrokers.c_str(), lb->current(), server.c_str(), port, topic.c_str());
|
senabled.c_str(), sbrokers.c_str(), lb->current(), server.c_str(), port, topic.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// connect to kafka server.
|
// reconnect to kafka server.
|
||||||
|
transport->close();
|
||||||
if ((ret = transport->connect(server, port, SRS_CONSTS_KAFKA_TIMEOUT_US)) != ERROR_SUCCESS) {
|
if ((ret = transport->connect(server, port, SRS_CONSTS_KAFKA_TIMEOUT_US)) != ERROR_SUCCESS) {
|
||||||
srs_error("kafka connect %s:%d failed. ret=%d", server.c_str(), port, ret);
|
srs_error("kafka connect %s:%d failed. ret=%d", server.c_str(), port, ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -473,6 +474,16 @@ int SrsKafkaProducer::request_metadata()
|
||||||
}
|
}
|
||||||
SrsAutoFree(SrsKafkaTopicMetadataResponse, metadata);
|
SrsAutoFree(SrsKafkaTopicMetadataResponse, metadata);
|
||||||
|
|
||||||
|
// we may need to request multiple times.
|
||||||
|
// for example, the first time to create a none-exists topic, then query metadata.
|
||||||
|
if (!metadata->metadatas.empty()) {
|
||||||
|
SrsKafkaTopicMetadata* topic = metadata->metadatas.at(0);
|
||||||
|
if (topic->metadatas.empty()) {
|
||||||
|
srs_warn("topic %s metadata empty, retry.", topic->name.to_str().c_str());
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// show kafka metadata.
|
// show kafka metadata.
|
||||||
string summary = srs_kafka_metadata_summary(metadata);
|
string summary = srs_kafka_metadata_summary(metadata);
|
||||||
srs_trace("kafka metadata: %s", summary.c_str());
|
srs_trace("kafka metadata: %s", summary.c_str());
|
||||||
|
|
|
@ -152,6 +152,10 @@ public:
|
||||||
{
|
{
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
virtual bool empty()
|
||||||
|
{
|
||||||
|
return elems.empty();
|
||||||
|
}
|
||||||
virtual T* at(int index)
|
virtual T* at(int index)
|
||||||
{
|
{
|
||||||
return elems.at(index);
|
return elems.at(index);
|
||||||
|
@ -241,6 +245,10 @@ public:
|
||||||
{
|
{
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
virtual bool empty()
|
||||||
|
{
|
||||||
|
return elems.empty();
|
||||||
|
}
|
||||||
virtual int32_t at(int index)
|
virtual int32_t at(int index)
|
||||||
{
|
{
|
||||||
return elems.at(index);
|
return elems.at(index);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue