Don't continue to refresh level 2 data if no data is present

This commit is contained in:
Dan Paulat 2022-05-30 10:55:52 -05:00
parent 70b8f78eb5
commit 5cfab59977
4 changed files with 21 additions and 10 deletions

View file

@ -304,7 +304,7 @@ void RadarProductManagerImpl::RefreshLevel2Data()
util::async(
[&]()
{
size_t newObjects = level2DataProvider_->Refresh();
auto [newObjects, totalObjects] = level2DataProvider_->Refresh();
std::chrono::milliseconds interval = kRetryInterval_;
@ -325,11 +325,17 @@ void RadarProductManagerImpl::RefreshLevel2Data()
emit self_->NewLevel2DataAvailable(latestTime);
}
else if (level2DataRefreshEnabled_ && totalObjects == 0)
{
logger_->info("No level 2 data found, disabling refresh");
std::unique_lock lock(level2DataRefreshTimerMutex_);
level2DataRefreshEnabled_ = false;
}
if (level2DataRefreshEnabled_)
{
std::unique_lock lock(level2DataRefreshTimerMutex_);
logger_->debug(
"Scheduled refresh in {:%M:%S}",
std::chrono::duration_cast<std::chrono::seconds>(interval));