Skip to content

Commit 5ddcf9a

Browse files
committed
fix: modified kafka manager to use poll in producer
https://telecominfraproject.atlassian.net/browse/WIFI-13597 NOTE: This fix is port of Telecominfraproject/wlan-cloud-ucentralgw#360 Summary of changes: - Modified code in KafkaManager to use poll instead of flush for every messages sent. flush is used only on empty internal notification queue in idle times. Signed-off-by: Ivan Chvets <ivan.chvets@kinarasystems.com>
1 parent 971a6d5 commit 5ddcf9a

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

src/framework/KafkaManager.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ namespace OpenWifi {
107107
NewMessage.partition(0);
108108
NewMessage.payload(Msg->Payload());
109109
Producer.produce(NewMessage);
110-
Producer.flush();
110+
Producer.poll((std::chrono::milliseconds) 0);
111111
}
112112
} catch (const cppkafka::HandleException &E) {
113113
poco_warning(Logger_,
@@ -117,6 +117,10 @@ namespace OpenWifi {
117117
} catch (...) {
118118
poco_error(Logger_, "std::exception");
119119
}
120+
if (Queue_.size() == 0) {
121+
// message queue is empty, flush all previously sent messages
122+
Producer.flush();
123+
}
120124
Note = Queue_.waitDequeueNotification();
121125
}
122126
poco_information(Logger_, "Stopped...");

0 commit comments

Comments
 (0)