wesnothd: restore functionality to log stats every 5 minutes
This commit is contained in:
parent
57da02a919
commit
0714d488bc
2 changed files with 19 additions and 5 deletions
|
@ -259,7 +259,7 @@ server::server(int port,
|
|||
, games_and_users_list_("[gamelist]\n[/gamelist]\n", simple_wml::INIT_STATIC)
|
||||
, metrics_()
|
||||
, last_ping_(std::time(nullptr))
|
||||
, last_stats_(last_ping_)
|
||||
, dump_stats_timer_(io_service_)
|
||||
, last_uh_clean_(last_ping_)
|
||||
, cmd_handlers_()
|
||||
, timer_(io_service_)
|
||||
|
@ -269,6 +269,8 @@ server::server(int port,
|
|||
ban_manager_.read();
|
||||
|
||||
start_server();
|
||||
|
||||
start_dump_stats();
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
|
@ -542,12 +544,22 @@ std::string server::is_ip_banned(const std::string& ip)
|
|||
return ban_manager_.is_ip_banned(ip);
|
||||
}
|
||||
|
||||
void server::dump_stats(const std::time_t& now)
|
||||
void server::start_dump_stats()
|
||||
{
|
||||
last_stats_ = now;
|
||||
dump_stats_timer_.expires_from_now(std::chrono::minutes(5));
|
||||
dump_stats_timer_.async_wait([this](const boost::system::error_code& ec) { dump_stats(ec); });
|
||||
}
|
||||
|
||||
void server::dump_stats(const boost::system::error_code& ec)
|
||||
{
|
||||
if(ec) {
|
||||
ERR_SERVER << "Error waiting for timer: " << ec.message() << "\n";
|
||||
return;
|
||||
}
|
||||
LOG_SERVER << "Statistics:"
|
||||
<< "\tnumber_of_games = " << games().size() << "\tnumber_of_users = " << player_connections_.size()
|
||||
<< "\n";
|
||||
start_dump_stats();
|
||||
}
|
||||
|
||||
void server::clean_user_handler(const std::time_t& now)
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <boost/shared_array.hpp>
|
||||
|
||||
#include <boost/asio/signal_set.hpp>
|
||||
#include <boost/asio/steady_timer.hpp>
|
||||
|
||||
namespace wesnothd
|
||||
{
|
||||
|
@ -168,8 +169,9 @@ private:
|
|||
metrics metrics_;
|
||||
|
||||
std::time_t last_ping_;
|
||||
std::time_t last_stats_;
|
||||
void dump_stats(const std::time_t& now);
|
||||
boost::asio::steady_timer dump_stats_timer_;
|
||||
void start_dump_stats();
|
||||
void dump_stats(const boost::system::error_code& ec);
|
||||
|
||||
std::time_t last_uh_clean_;
|
||||
void clean_user_handler(const std::time_t& now);
|
||||
|
|
Loading…
Add table
Reference in a new issue