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::string remote_token_;
|
||||||
std::uint16_t retry_read_count_;
|
std::uint16_t retry_read_count_;
|
||||||
std::uint16_t ring_buffer_file_size_;
|
std::uint16_t ring_buffer_file_size_;
|
||||||
|
std::uint16_t task_wait_ms_;
|
||||||
|
|
||||||
|
private:
|
||||||
std::string cache_directory_;
|
std::string cache_directory_;
|
||||||
host_config hc_;
|
host_config hc_{};
|
||||||
s3_config s3_config_;
|
s3_config s3_config_{};
|
||||||
sia_config sia_config_{};
|
sia_config sia_config_{};
|
||||||
std::uint64_t version_{REPERTORY_CONFIG_VERSION};
|
std::uint64_t version_{REPERTORY_CONFIG_VERSION};
|
||||||
std::string log_directory_;
|
std::string log_directory_;
|
||||||
@ -299,6 +302,10 @@ public:
|
|||||||
return sia_config_;
|
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_value_by_name(const std::string &name) -> std::string;
|
||||||
|
|
||||||
[[nodiscard]] auto get_version() const -> std::uint64_t { return version_; }
|
[[nodiscard]] auto get_version() const -> std::uint64_t { return version_; }
|
||||||
@ -455,6 +462,10 @@ public:
|
|||||||
set_value(retry_read_count_, retry_read_count);
|
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,
|
[[nodiscard]] auto set_value_by_name(const std::string &name,
|
||||||
const std::string &value) -> std::string;
|
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_remote_token = "";
|
||||||
constexpr const auto default_retry_read_count = 6U;
|
constexpr const auto default_retry_read_count = 6U;
|
||||||
constexpr const auto default_ring_buffer_file_size = 512U;
|
constexpr const auto default_ring_buffer_file_size = 512U;
|
||||||
|
constexpr const auto default_task_wait_ms = 100U;
|
||||||
constexpr const auto retry_save_count = 5U;
|
constexpr const auto retry_save_count = 5U;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -95,7 +96,8 @@ app_config::app_config(const provider_type &prov,
|
|||||||
remote_send_timeout_secs_(default_remote_send_timeout_secs),
|
remote_send_timeout_secs_(default_remote_send_timeout_secs),
|
||||||
remote_token_(default_remote_token),
|
remote_token_(default_remote_token),
|
||||||
retry_read_count_(default_retry_read_count),
|
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"});
|
cache_directory_ = utils::path::combine(data_directory_, {"cache"});
|
||||||
log_directory_ = utils::path::combine(data_directory_, {"logs"});
|
log_directory_ = utils::path::combine(data_directory_, {"logs"});
|
||||||
|
|
||||||
@ -271,6 +273,7 @@ auto app_config::get_json() const -> json {
|
|||||||
{
|
{
|
||||||
{"Bucket", sia_config_.bucket},
|
{"Bucket", sia_config_.bucket},
|
||||||
}},
|
}},
|
||||||
|
{"TaskWaitMillis", task_wait_ms_},
|
||||||
{"Version", version_}};
|
{"Version", version_}};
|
||||||
|
|
||||||
if (prov_ == provider_type::encrypt) {
|
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") {
|
if (name == "SiaConfig.Bucket") {
|
||||||
return sia_config_.bucket;
|
return sia_config_.bucket;
|
||||||
}
|
}
|
||||||
|
if (name == "TaskWaitMillis") {
|
||||||
|
return std::to_string(get_task_wait_ms());
|
||||||
|
}
|
||||||
} catch (const std::exception &e) {
|
} catch (const std::exception &e) {
|
||||||
utils::error::raise_error(function_name, e, "exception occurred");
|
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, "ReadAheadCount", read_ahead_count_, ret);
|
||||||
get_value(json_document, "RingBufferFileSize", ring_buffer_file_size_,
|
get_value(json_document, "RingBufferFileSize", ring_buffer_file_size_,
|
||||||
ret);
|
ret);
|
||||||
|
get_value(json_document, "TaskWaitMillis", task_wait_ms_, ret);
|
||||||
get_value(json_document, "EnableMaxCacheSize", enable_max_cache_size_,
|
get_value(json_document, "EnableMaxCacheSize", enable_max_cache_size_,
|
||||||
ret);
|
ret);
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
@ -925,6 +932,10 @@ auto app_config::set_value_by_name(const std::string &name,
|
|||||||
set_value(sia_config_.bucket, value);
|
set_value(sia_config_.bucket, value);
|
||||||
return sia_config_.bucket;
|
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) {
|
} catch (const std::exception &e) {
|
||||||
utils::error::raise_error(function_name, e, "exception occurred");
|
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 {
|
auto tasks::schedule(task item) -> task_ptr {
|
||||||
++count_;
|
++count_;
|
||||||
while (not stop_requested_ && (count_ >= task_threads_.size())) {
|
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};
|
scheduled_task runnable{item};
|
||||||
|
@ -101,6 +101,7 @@ const auto DEFAULT_SIA_CONFIG = "{\n"
|
|||||||
" \"SiaConfig\": {\n"
|
" \"SiaConfig\": {\n"
|
||||||
" \"Bucket\": \"\"\n"
|
" \"Bucket\": \"\"\n"
|
||||||
" },\n"
|
" },\n"
|
||||||
|
" \"TaskWaitMillis\": 100,\n"
|
||||||
" \"Version\": " +
|
" \"Version\": " +
|
||||||
std::to_string(REPERTORY_CONFIG_VERSION) +
|
std::to_string(REPERTORY_CONFIG_VERSION) +
|
||||||
"\n"
|
"\n"
|
||||||
@ -153,6 +154,7 @@ const auto DEFAULT_S3_CONFIG = "{\n"
|
|||||||
" \"UsePathStyle\": false,\n"
|
" \"UsePathStyle\": false,\n"
|
||||||
" \"UseRegionInURL\": false\n"
|
" \"UseRegionInURL\": false\n"
|
||||||
" },\n"
|
" },\n"
|
||||||
|
" \"TaskWaitMillis\": 100,\n"
|
||||||
" \"Version\": " +
|
" \"Version\": " +
|
||||||
std::to_string(REPERTORY_CONFIG_VERSION) +
|
std::to_string(REPERTORY_CONFIG_VERSION) +
|
||||||
"\n"
|
"\n"
|
||||||
@ -817,4 +819,26 @@ TEST_F(config_test, retry_read_count_minimum_value) {
|
|||||||
EXPECT_EQ(2, config.get_retry_read_count());
|
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
|
} // namespace repertory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user