feat(sql server): added ping check to make sure the server is online before we try to connect
This commit is contained in:
@@ -5,10 +5,18 @@ import {db} from "../../../database/dbclient.js";
|
||||
import {settings} from "../../../database/schema/settings.js";
|
||||
import {eq} from "drizzle-orm";
|
||||
import {installed} from "../../index.js";
|
||||
import {checkHostnamePort} from "../../globalUtils/pingServer.js";
|
||||
|
||||
let pool: any;
|
||||
let connected: boolean = false;
|
||||
export const initializeProdPool = async () => {
|
||||
const dbServer = await db.select().from(settings).where(eq(settings.name, "dbServer"));
|
||||
const serverUp = await checkHostnamePort(`${dbServer[0].value}:1433`);
|
||||
|
||||
if (!serverUp) {
|
||||
createLog("error", "lst", "server", `The sql ${dbServer[0].value} is not reachable`);
|
||||
return;
|
||||
}
|
||||
if (!installed) {
|
||||
createLog("info", "lst", "sqlProd", "The server was not installed will reconnect in 5 seconds");
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -7,10 +7,9 @@ import restart from "./route/restartProdSql.js";
|
||||
|
||||
const app = new OpenAPIHono();
|
||||
|
||||
// intially start the pool up.
|
||||
setTimeout(() => {
|
||||
setTimeout(async () => {
|
||||
initializeProdPool();
|
||||
}, 500);
|
||||
}, 2 * 1000);
|
||||
|
||||
app.route("/sqlprod/connect", connect);
|
||||
app.route("/sqlprod/close", closeConnection);
|
||||
|
||||
Reference in New Issue
Block a user