From aebe139d00b44684158edb3616da5c37b12db6d1 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Sun, 26 Apr 2020 13:01:19 +0200 Subject: Added stats output --- server.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'server.cpp') diff --git a/server.cpp b/server.cpp index 71f39ac..5d1609d 100644 --- a/server.cpp +++ b/server.cpp @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -39,6 +40,10 @@ using tcp = boost::asio::ip::tcp; // from const std::string Server::VersionString{ "Reichwein.IT Webserver "s + std::string{VERSION} }; +namespace { + const int32_t stats_timer_seconds { 24 * 60 * 60 }; // save stats once a day +} // anonymous namespace + Server::Server(Config& config, boost::asio::io_context& ioc, const Socket& socket, plugins_container_type& plugins, Statistics& statistics) : m_config(config) , m_ioc(ioc) @@ -66,6 +71,16 @@ int run_server(Config& config, plugins_container_type& plugins) ioc.stop(); }); + // Save stats once a day + boost::asio::steady_timer stats_save_timer(ioc, boost::asio::chrono::seconds(stats_timer_seconds)); + std::function stats_callback = + [&](const boost::system::error_code& error){ + stats.save(); + stats_save_timer.expires_at(stats_save_timer.expires_at() + boost::asio::chrono::seconds(stats_timer_seconds)); + stats_save_timer.async_wait(stats_callback); + }; + stats_save_timer.async_wait(stats_callback); + std::vector> servers; const auto& sockets {config.Sockets()}; -- cgit v1.2.3