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 {settings} from "../../../database/schema/settings.js";
|
||||||
import {eq} from "drizzle-orm";
|
import {eq} from "drizzle-orm";
|
||||||
import {installed} from "../../index.js";
|
import {installed} from "../../index.js";
|
||||||
|
import {checkHostnamePort} from "../../globalUtils/pingServer.js";
|
||||||
|
|
||||||
let pool: any;
|
let pool: any;
|
||||||
let connected: boolean = false;
|
let connected: boolean = false;
|
||||||
export const initializeProdPool = async () => {
|
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) {
|
if (!installed) {
|
||||||
createLog("info", "lst", "sqlProd", "The server was not installed will reconnect in 5 seconds");
|
createLog("info", "lst", "sqlProd", "The server was not installed will reconnect in 5 seconds");
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|||||||
@@ -7,10 +7,9 @@ import restart from "./route/restartProdSql.js";
|
|||||||
|
|
||||||
const app = new OpenAPIHono();
|
const app = new OpenAPIHono();
|
||||||
|
|
||||||
// intially start the pool up.
|
setTimeout(async () => {
|
||||||
setTimeout(() => {
|
|
||||||
initializeProdPool();
|
initializeProdPool();
|
||||||
}, 500);
|
}, 2 * 1000);
|
||||||
|
|
||||||
app.route("/sqlprod/connect", connect);
|
app.route("/sqlprod/connect", connect);
|
||||||
app.route("/sqlprod/close", closeConnection);
|
app.route("/sqlprod/close", closeConnection);
|
||||||
|
|||||||
Reference in New Issue
Block a user