added TaskWaitMillis to config
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good
This commit is contained in:
parent
ff8d037474
commit
31df328be7
@ -95,9 +95,12 @@ private:
|
||||
std::string remote_token_;
|
||||
std::uint16_t retry_read_count_;
|
||||
std::uint16_t ring_buffer_file_size_;
|
||||
std::uint16_t task_wait_ms_;
|
||||
|
||||
private:
|
||||
std::string cache_directory_;
|
||||
host_config hc_;
|
||||
s3_config s3_config_;
|
||||
host_config hc_{};
|
||||
s3_config s3_config_{};
|
||||
sia_config sia_config_{};
|
||||
std::uint64_t version_{REPERTORY_CONFIG_VERSION};
|
||||
std::string log_directory_;
|
||||
@ -299,6 +302,10 @@ public:
|
||||
return sia_config_;
|
||||
}
|
||||
|
||||
[[nodiscard]] auto get_task_wait_ms() const -> std::uint16_t {
|
||||
return std::max(static_cast<std::uint16_t>(50U), task_wait_ms_);
|
||||
}
|
||||
|
||||
[[nodiscard]] auto get_value_by_name(const std::string &name) -> std::string;
|
||||
|
||||
[[nodiscard]] auto get_version() const -> std::uint64_t { return version_; }
|
||||
@ -455,6 +462,10 @@ public:
|
||||
set_value(retry_read_count_, retry_read_count);
|
||||
}
|
||||
|
||||
void set_task_wait_ms(std::uint16_t task_wait_ms) {
|
||||
set_value(task_wait_ms_, task_wait_ms);
|
||||
}
|
||||
|
||||
[[nodiscard]] auto set_value_by_name(const std::string &name,
|
||||
const std::string &value) -> std::string;
|
||||
};
|
||||
|
@ -50,6 +50,7 @@ constexpr const auto default_remote_send_timeout_secs = 30U;
|
||||
constexpr const auto default_remote_token = "";
|
||||
constexpr const auto default_retry_read_count = 6U;
|
||||
constexpr const auto default_ring_buffer_file_size = 512U;
|
||||
constexpr const auto default_task_wait_ms = 100U;
|
||||
constexpr const auto retry_save_count = 5U;
|
||||
} // namespace
|
||||
|
||||
@ -95,7 +96,8 @@ app_config::app_config(const provider_type &prov,
|
||||
remote_send_timeout_secs_(default_remote_send_timeout_secs),
|
||||
remote_token_(default_remote_token),
|
||||
retry_read_count_(default_retry_read_count),
|
||||
ring_buffer_file_size_(default_ring_buffer_file_size) {
|
||||
ring_buffer_file_size_(default_ring_buffer_file_size),
|
||||
task_wait_ms_(default_task_wait_ms) {
|
||||
cache_directory_ = utils::path::combine(data_directory_, {"cache"});
|
||||
log_directory_ = utils::path::combine(data_directory_, {"logs"});
|
||||
|
||||
@ -271,6 +273,7 @@ auto app_config::get_json() const -> json {
|
||||
{
|
||||
{"Bucket", sia_config_.bucket},
|
||||
}},
|
||||
{"TaskWaitMillis", task_wait_ms_},
|
||||
{"Version", version_}};
|
||||
|
||||
if (prov_ == provider_type::encrypt) {
|
||||
@ -507,6 +510,9 @@ auto app_config::get_value_by_name(const std::string &name) -> std::string {
|
||||
if (name == "SiaConfig.Bucket") {
|
||||
return sia_config_.bucket;
|
||||
}
|
||||
if (name == "TaskWaitMillis") {
|
||||
return std::to_string(get_task_wait_ms());
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
utils::error::raise_error(function_name, e, "exception occurred");
|
||||
}
|
||||
@ -611,6 +617,7 @@ auto app_config::load() -> bool {
|
||||
get_value(json_document, "ReadAheadCount", read_ahead_count_, ret);
|
||||
get_value(json_document, "RingBufferFileSize", ring_buffer_file_size_,
|
||||
ret);
|
||||
get_value(json_document, "TaskWaitMillis", task_wait_ms_, ret);
|
||||
get_value(json_document, "EnableMaxCacheSize", enable_max_cache_size_,
|
||||
ret);
|
||||
#if defined(_WIN32)
|
||||
@ -925,6 +932,10 @@ auto app_config::set_value_by_name(const std::string &name,
|
||||
set_value(sia_config_.bucket, value);
|
||||
return sia_config_.bucket;
|
||||
}
|
||||
if (name == "TaskWaitMillis") {
|
||||
set_task_wait_ms(utils::string::to_uint16(value));
|
||||
return std::to_string(get_task_wait_ms());
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
utils::error::raise_error(function_name, e, "exception occurred");
|
||||
}
|
||||
|
@ -50,7 +50,8 @@ auto tasks::task_wait::wait() const -> bool {
|
||||
auto tasks::schedule(task item) -> task_ptr {
|
||||
++count_;
|
||||
while (not stop_requested_ && (count_ >= task_threads_.size())) {
|
||||
std::this_thread::sleep_for(50ms);
|
||||
std::this_thread::sleep_for(
|
||||
std::chrono::milliseconds(config_->get_task_wait_ms()));
|
||||
}
|
||||
|
||||
scheduled_task runnable{item};
|
||||
|
@ -101,6 +101,7 @@ const auto DEFAULT_SIA_CONFIG = "{\n"
|
||||
" \"SiaConfig\": {\n"
|
||||
" \"Bucket\": \"\"\n"
|
||||
" },\n"
|
||||
" \"TaskWaitMillis\": 100,\n"
|
||||
" \"Version\": " +
|
||||
std::to_string(REPERTORY_CONFIG_VERSION) +
|
||||
"\n"
|
||||
@ -153,6 +154,7 @@ const auto DEFAULT_S3_CONFIG = "{\n"
|
||||
" \"UsePathStyle\": false,\n"
|
||||
" \"UseRegionInURL\": false\n"
|
||||
" },\n"
|
||||
" \"TaskWaitMillis\": 100,\n"
|
||||
" \"Version\": " +
|
||||
std::to_string(REPERTORY_CONFIG_VERSION) +
|
||||
"\n"
|
||||
@ -817,4 +819,26 @@ TEST_F(config_test, retry_read_count_minimum_value) {
|
||||
EXPECT_EQ(2, config.get_retry_read_count());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(config_test, task_wait_ms) {
|
||||
std::uint16_t original_value{};
|
||||
{
|
||||
app_config config(provider_type::sia, sia_directory);
|
||||
original_value = config.get_task_wait_ms();
|
||||
config.set_task_wait_ms(original_value + 1U);
|
||||
EXPECT_EQ(original_value + 1U, config.get_task_wait_ms());
|
||||
}
|
||||
{
|
||||
app_config config(provider_type::sia, sia_directory);
|
||||
EXPECT_EQ(original_value + 1U, config.get_task_wait_ms());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(config_test, task_wait_ms_minimum_value) {
|
||||
{
|
||||
app_config config(provider_type::sia, sia_directory);
|
||||
config.set_task_wait_ms(1U);
|
||||
EXPECT_EQ(50U, config.get_task_wait_ms());
|
||||
}
|
||||
}
|
||||
} // namespace repertory
|
||||
|
Loading…
x
Reference in New Issue
Block a user