From 56350c8704486e4ac22ea6483d2713b0fde796c2 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sat, 7 Dec 2024 13:44:03 -0600 Subject: [PATCH] added medium frequency --- repertory/librepertory/include/utils/polling.hpp | 6 +++++- repertory/librepertory/src/app_config.cpp | 2 +- repertory/librepertory/src/file_manager/file_manager.cpp | 2 +- repertory/librepertory/src/utils/polling.cpp | 9 +++++++++ repertory/repertory_test/src/config_test.cpp | 4 ++-- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/repertory/librepertory/include/utils/polling.hpp b/repertory/librepertory/include/utils/polling.hpp index 82504c39..262e19cb 100644 --- a/repertory/librepertory/include/utils/polling.hpp +++ b/repertory/librepertory/include/utils/polling.hpp @@ -32,7 +32,9 @@ public: enum struct frequency { high, low, + medium, second, + size, }; struct polling_item final { @@ -60,7 +62,9 @@ public: private: app_config *config_{nullptr}; - std::array, 3U> frequency_threads_; + std::array, + static_cast(frequency::size)> + frequency_threads_; std::unordered_map items_; std::mutex mutex_; std::condition_variable notify_; diff --git a/repertory/librepertory/src/app_config.cpp b/repertory/librepertory/src/app_config.cpp index b5f3714d..3aefeab5 100644 --- a/repertory/librepertory/src/app_config.cpp +++ b/repertory/librepertory/src/app_config.cpp @@ -34,7 +34,7 @@ constexpr const auto default_api_auth_size = 48U; constexpr const auto default_download_timeout_ces = 30U; constexpr const auto default_eviction_delay_mins = 10U; constexpr const auto default_high_freq_interval_secs = 30U; -constexpr const auto default_med_freq_interval_secs = 5U * 60U; +constexpr const auto default_med_freq_interval_secs = 2U * 60U; constexpr const auto default_low_freq_interval_secs = 60U * 60U; constexpr const auto default_max_cache_size_bytes = 20ULL * 1024ULL * 1024ULL * 1024ULL; diff --git a/repertory/librepertory/src/file_manager/file_manager.cpp b/repertory/librepertory/src/file_manager/file_manager.cpp index dcfaa366..0e46a11e 100644 --- a/repertory/librepertory/src/file_manager/file_manager.cpp +++ b/repertory/librepertory/src/file_manager/file_manager.cpp @@ -781,7 +781,7 @@ void file_manager::start() { polling::instance().set_callback({ "db_cleanup", - polling::frequency::high, + polling::frequency::medium, [this](auto && /* stop_requested */) { mutex_lock lock(upload_mtx_); sqlite3_db_release_memory(db_.get()); diff --git a/repertory/librepertory/src/utils/polling.cpp b/repertory/librepertory/src/utils/polling.cpp index 1d857dfb..41e78cfd 100644 --- a/repertory/librepertory/src/utils/polling.cpp +++ b/repertory/librepertory/src/utils/polling.cpp @@ -111,6 +111,15 @@ void polling::start(app_config *config) { frequency::low); }); + frequency_threads_.at(idx++) = + std::make_unique([this]() -> void { + this->frequency_thread( + [this]() -> std::uint32_t { + return config_->get_med_frequency_interval_secs(); + }, + frequency::medium); + }); + frequency_threads_.at(idx++) = std::make_unique([this]() -> void { this->frequency_thread([]() -> std::uint32_t { return 1U; }, diff --git a/repertory/repertory_test/src/config_test.cpp b/repertory/repertory_test/src/config_test.cpp index 93359f1e..ba495367 100644 --- a/repertory/repertory_test/src/config_test.cpp +++ b/repertory/repertory_test/src/config_test.cpp @@ -81,7 +81,7 @@ const auto DEFAULT_SIA_CONFIG = "{\n" " \"LowFreqIntervalSeconds\": 3600,\n" " \"MaxCacheSizeBytes\": 21474836480,\n" " \"MaxUploadCount\": 5,\n" - " \"MedFreqIntervalSeconds\": 300,\n" + " \"MedFreqIntervalSeconds\": 120,\n" " \"OnlineCheckRetrySeconds\": 60,\n" " \"OrphanedFileRetentionDays\": 15,\n" " \"PreferredDownloadType\": \"fallback\",\n" @@ -127,7 +127,7 @@ const auto DEFAULT_S3_CONFIG = "{\n" " \"LowFreqIntervalSeconds\": 3600,\n" " \"MaxCacheSizeBytes\": 21474836480,\n" " \"MaxUploadCount\": 5,\n" - " \"MedFreqIntervalSeconds\": 300,\n" + " \"MedFreqIntervalSeconds\": 120,\n" " \"OnlineCheckRetrySeconds\": 60,\n" " \"OrphanedFileRetentionDays\": 15,\n" " \"PreferredDownloadType\": \"fallback\",\n"