Skip to content

Commit

Permalink
Merge pull request #107 from Telecominfraproject/WIFI-13597-fix-kafka…
Browse files Browse the repository at this point in the history
…-producer-using-poll

Wifi 13597 fix kafka producer using poll
  • Loading branch information
i-chvets authored Jul 12, 2024
2 parents f39388d + 4ae0b99 commit 36f491b
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/framework/KafkaManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,16 @@ namespace OpenWifi {
NewMessage.partition(0);
NewMessage.payload(Msg->Payload());
Producer.produce(NewMessage);
Producer.flush();
if (Queue_.size() < 100) {
// use flush when internal queue is lightly loaded, i.e. flush after each
// message
Producer.flush();
}
else {
// use poll when internal queue is loaded to allow messages to be sent in
// batches
Producer.poll((std::chrono::milliseconds) 0);
}
}
} catch (const cppkafka::HandleException &E) {
poco_warning(Logger_,
Expand All @@ -117,8 +126,13 @@ namespace OpenWifi {
} catch (...) {
poco_error(Logger_, "std::exception");
}
if (Queue_.size() == 0) {
// message queue is empty, flush all previously sent messages
Producer.flush();
}
Note = Queue_.waitDequeueNotification();
}
Producer.flush();
poco_information(Logger_, "Stopped...");
}

Expand Down Expand Up @@ -324,4 +338,4 @@ namespace OpenWifi {
partitions.front().get_partition()));
}

} // namespace OpenWifi
} // namespace OpenWifi

0 comments on commit 36f491b

Please sign in to comment.