added service.memory_collector_time to configure backend collection basend on highest memory usage. By default this feature is deactivated

This commit is contained in:
HanzZ 2011-09-27 20:16:59 +02:00
parent 6d96d5725b
commit 85600b449f
3 changed files with 11 additions and 6 deletions

View file

@ -12,8 +12,8 @@ admin_password=test
#cert_password=test #password to that certificate if any
users_per_backend=10
backend=/home/hanzz/code/libtransport/backends/libpurple/spectrum2_libpurple_backend
#backend=/home/hanzz/code/libtransport/backends/frotz/spectrum_frotz_backend
#backend=../../backends/libircclient-qt/spectrum_libircclient-qt_backend
#backend=/home/hanzz/code/libtransport/backends/frotz/spectrum2_frotz_backend
#backend=../../backends/libircclient-qt/spectrum2_libircclient-qt_backend
#protocol=prpl-msn
protocol=any
#protocol=prpl-icq

View file

@ -67,6 +67,7 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description
("service.admin_password", value<std::string>()->default_value(""), "Administrator password.")
("service.reuse_old_backends", value<bool>()->default_value(true), "True if Spectrum should use old backends which were full in the past.")
("service.idle_reconnect_time", value<int>()->default_value(0), "Time in seconds after which idle users are reconnected to let their backend die.")
("service.memory_collector_time", value<int>()->default_value(0), "Time in seconds after which backend with most memory is set to die.")
("service.more_resources", value<bool>()->default_value(false), "Allow more resources to be connected in server mode at the same time.")
("service.enable_privacy_lists", value<bool>()->default_value(true), "")
("identity.name", value<std::string>()->default_value("Spectrum 2 Transport"), "Name showed in service discovery.")

View file

@ -217,9 +217,11 @@ NetworkPluginServer::NetworkPluginServer(Component *component, Config *config, U
m_pingTimer->onTick.connect(boost::bind(&NetworkPluginServer::pingTimeout, this));
m_pingTimer->start();
m_collectTimer = component->getNetworkFactories()->getTimerFactory()->createTimer(2*3600000);
m_collectTimer->onTick.connect(boost::bind(&NetworkPluginServer::collectBackend, this));
m_collectTimer->start();
if (CONFIG_INT(m_config, "service.memory_collector_time") != 0) {
m_collectTimer = component->getNetworkFactories()->getTimerFactory()->createTimer(CONFIG_INT(m_config, "service.memory_collector_time"));
m_collectTimer->onTick.connect(boost::bind(&NetworkPluginServer::collectBackend, this));
m_collectTimer->start();
}
m_vcardResponder = new VCardResponder(component->getIQRouter(), component->getNetworkFactories(), userManager);
m_vcardResponder->onVCardRequired.connect(boost::bind(&NetworkPluginServer::handleVCardRequired, this, _1, _2, _3));
@ -736,7 +738,9 @@ void NetworkPluginServer::collectBackend() {
}
if (backend) {
m_collectTimer->start();
if (m_collectTimer) {
m_collectTimer->start();
}
LOG4CXX_INFO(logger, "Backend " << backend << "is set to die");
backend->acceptUsers = false;
}