Updating refresh timer logic to be more robust

- When re-enabling refresh, base new refresh time off existing data when any data is found, not just new data
This commit is contained in:
Dan Paulat 2023-04-08 18:44:07 -05:00
parent 5fbb748328
commit 16044efbf3

View file

@ -598,7 +598,7 @@ void RadarProductManagerImpl::RefreshData(
std::chrono::milliseconds interval = kRetryInterval_; std::chrono::milliseconds interval = kRetryInterval_;
if (newObjects > 0) if (totalObjects > 0)
{ {
std::string key = providerManager->provider_->FindLatestKey(); std::string key = providerManager->provider_->FindLatestKey();
auto latestTime = auto latestTime =
@ -614,10 +614,14 @@ void RadarProductManagerImpl::RefreshData(
interval = kRetryInterval_; interval = kRetryInterval_;
} }
emit providerManager->NewDataAvailable( if (newObjects > 0)
providerManager->group_, providerManager->product_, latestTime); {
emit providerManager->NewDataAvailable(providerManager->group_,
providerManager->product_,
latestTime);
}
} }
else if (providerManager->refreshEnabled_ && totalObjects == 0) else if (providerManager->refreshEnabled_)
{ {
logger_->info("[{}] No data found, disabling refresh", logger_->info("[{}] No data found, disabling refresh",
providerManager->name()); providerManager->name());