MXS-1775 Monitor loop and monitoring separated

In preparation for moving the monitor loop to MonitorInstance.
This commit is contained in:
Johan Wikman
2018-05-16 15:28:49 +03:00
parent 6fff5a4f23
commit 2396b555f8
10 changed files with 234 additions and 204 deletions

View File

@ -128,16 +128,7 @@ void AuroraMonitor::main()
lock_monitor_servers(m_monitor);
servers_status_pending_to_current(m_monitor);
for (MXS_MONITORED_SERVER *ptr = m_monitor->monitored_servers; ptr; ptr = ptr->next)
{
update_server_status(m_monitor, ptr);
if (SERVER_IS_DOWN(ptr->server))
{
/** Hang up all DCBs connected to the failed server */
dcb_hangup_foreach(ptr->server);
}
}
tick();
/**
* After updating the status of all servers, check if monitor events
@ -164,6 +155,20 @@ void AuroraMonitor::main()
}
}
void AuroraMonitor::tick()
{
for (MXS_MONITORED_SERVER *ptr = m_monitor->monitored_servers; ptr; ptr = ptr->next)
{
update_server_status(m_monitor, ptr);
if (SERVER_IS_DOWN(ptr->server))
{
/** Hang up all DCBs connected to the failed server */
dcb_hangup_foreach(ptr->server);
}
}
}
bool AuroraMonitor::has_sufficient_permissions() const
{
return check_monitor_permissions(m_monitor, "SELECT @@aurora_server_id, server_id FROM "

View File

@ -37,6 +37,7 @@ private:
bool has_sufficient_permissions() const;
void configure(const MXS_CONFIG_PARAMETER* params);
void tick();
void main();
};