diff options
Diffstat (limited to 'src/common/Metric/Metric.cpp')
-rw-r--r-- | src/common/Metric/Metric.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/common/Metric/Metric.cpp b/src/common/Metric/Metric.cpp index 8a2ecabd82..a6cd4b1f27 100644 --- a/src/common/Metric/Metric.cpp +++ b/src/common/Metric/Metric.cpp @@ -17,7 +17,6 @@ #include "Metric.h" #include "Config.h" -#include "DeadlineTimer.h" #include "Log.h" #include "Strand.h" #include "Tokenize.h" @@ -42,8 +41,8 @@ void Metric::Initialize(std::string const& realmName, Acore::Asio::IoContext& io { _dataStream = std::make_unique<boost::asio::ip::tcp::iostream>(); _realmName = FormatInfluxDBTagValue(realmName); - _batchTimer = std::make_unique<Acore::Asio::DeadlineTimer>(ioContext); - _overallStatusTimer = std::make_unique<Acore::Asio::DeadlineTimer>(ioContext); + _batchTimer = std::make_unique<boost::asio::steady_timer>(ioContext); + _overallStatusTimer = std::make_unique<boost::asio::steady_timer>(ioContext); _overallStatusLogger = overallStatusLogger; LoadFromConfigs(); } @@ -247,7 +246,9 @@ void Metric::ScheduleSend() { if (_enabled) { - _batchTimer->expires_from_now(boost::posix_time::seconds(_updateInterval)); + // Calculate the expiration time + auto expirationTime = std::chrono::steady_clock::now() + std::chrono::seconds(_updateInterval); + _batchTimer->expires_at(expirationTime); _batchTimer->async_wait(std::bind(&Metric::SendBatch, this)); } else @@ -280,7 +281,9 @@ void Metric::ScheduleOverallStatusLog() { if (_enabled) { - _overallStatusTimer->expires_from_now(boost::posix_time::seconds(_overallStatusTimerInterval)); + // Calculate the expiration time _overallStatusTimerInterval from now + auto expirationTime = std::chrono::steady_clock::now() + std::chrono::seconds(_overallStatusTimerInterval); + _overallStatusTimer->expires_at(expirationTime); _overallStatusTimer->async_wait([this](const boost::system::error_code&) { _overallStatusTimerTriggered = true; |