现在我有一个C++客户端应用程序,它使用mysql.h连接到MYSQL数据库,并且在发生断开连接时必须执行一些逻辑。我想知道这是否是在客户端断开连接的情况下重新连接到MYSQL数据库的最佳方式。
bool MYSQL::Reconnect(const char *host, const char *user, const char *passwd, const char *db)
{
bool out = false;
pid_t command_pid = fork();
if (command_pid == 0)
{
while(1)
{
sleep(1);
if (mysql_real_connect(&m_mysql, host, user, passwd, db, 0, NULL, 0) == NULL )
{
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&m_mysql));
}
else
{
m_connected = true;
out = true;
break;
}
}
exit(0);
}
if (command_pid < 0)
fprintf(stderr, "Could not fork process[reconnect]: %s\n", mysql_error(&m_mysql));
return out;
}现在我接受我的所有参数并预制叉子。子进程尝试每秒用sleep()语句重新连接。这是做这件事的好方法吗?谢谢