mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Refactor runJobs and initializeJobs functions to incorporate backupType handling and improve server status checks. Enhance database backup logic for better clarity and maintainability, ensuring only active servers are initialized.
This commit is contained in:
parent
25f3980492
commit
d57e347fdc
@ -12,7 +12,7 @@ import {
|
|||||||
} from "@dokploy/server";
|
} from "@dokploy/server";
|
||||||
import { db } from "@dokploy/server/dist/db";
|
import { db } from "@dokploy/server/dist/db";
|
||||||
import { backups, server } from "@dokploy/server/dist/db/schema";
|
import { backups, server } from "@dokploy/server/dist/db/schema";
|
||||||
import { eq } from "drizzle-orm";
|
import { and, eq } from "drizzle-orm";
|
||||||
import { logger } from "./logger.js";
|
import { logger } from "./logger.js";
|
||||||
import { scheduleJob } from "./queue.js";
|
import { scheduleJob } from "./queue.js";
|
||||||
import type { QueueJob } from "./schema.js";
|
import type { QueueJob } from "./schema.js";
|
||||||
@ -23,48 +23,57 @@ export const runJobs = async (job: QueueJob) => {
|
|||||||
if (job.type === "backup") {
|
if (job.type === "backup") {
|
||||||
const { backupId } = job;
|
const { backupId } = job;
|
||||||
const backup = await findBackupById(backupId);
|
const backup = await findBackupById(backupId);
|
||||||
const { databaseType, postgres, mysql, mongo, mariadb, compose } = backup;
|
const {
|
||||||
|
databaseType,
|
||||||
|
postgres,
|
||||||
|
mysql,
|
||||||
|
mongo,
|
||||||
|
mariadb,
|
||||||
|
compose,
|
||||||
|
backupType,
|
||||||
|
} = backup;
|
||||||
|
|
||||||
if (databaseType === "postgres" && postgres) {
|
if (backupType === "database") {
|
||||||
const server = await findServerById(postgres.serverId as string);
|
if (databaseType === "postgres" && postgres) {
|
||||||
if (server.serverStatus === "inactive") {
|
const server = await findServerById(postgres.serverId as string);
|
||||||
logger.info("Server is inactive");
|
if (server.serverStatus === "inactive") {
|
||||||
return;
|
logger.info("Server is inactive");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await runPostgresBackup(postgres, backup);
|
||||||
|
await keepLatestNBackups(backup, server.serverId);
|
||||||
|
} else if (databaseType === "mysql" && mysql) {
|
||||||
|
const server = await findServerById(mysql.serverId as string);
|
||||||
|
if (server.serverStatus === "inactive") {
|
||||||
|
logger.info("Server is inactive");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await runMySqlBackup(mysql, backup);
|
||||||
|
await keepLatestNBackups(backup, server.serverId);
|
||||||
|
} else if (databaseType === "mongo" && mongo) {
|
||||||
|
const server = await findServerById(mongo.serverId as string);
|
||||||
|
if (server.serverStatus === "inactive") {
|
||||||
|
logger.info("Server is inactive");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await runMongoBackup(mongo, backup);
|
||||||
|
await keepLatestNBackups(backup, server.serverId);
|
||||||
|
} else if (databaseType === "mariadb" && mariadb) {
|
||||||
|
const server = await findServerById(mariadb.serverId as string);
|
||||||
|
if (server.serverStatus === "inactive") {
|
||||||
|
logger.info("Server is inactive");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await runMariadbBackup(mariadb, backup);
|
||||||
|
await keepLatestNBackups(backup, server.serverId);
|
||||||
}
|
}
|
||||||
await runPostgresBackup(postgres, backup);
|
} else if (backupType === "compose" && compose) {
|
||||||
await keepLatestNBackups(backup, server.serverId);
|
|
||||||
} else if (databaseType === "mysql" && mysql) {
|
|
||||||
const server = await findServerById(mysql.serverId as string);
|
|
||||||
if (server.serverStatus === "inactive") {
|
|
||||||
logger.info("Server is inactive");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await runMySqlBackup(mysql, backup);
|
|
||||||
await keepLatestNBackups(backup, server.serverId);
|
|
||||||
} else if (databaseType === "mongo" && mongo) {
|
|
||||||
const server = await findServerById(mongo.serverId as string);
|
|
||||||
if (server.serverStatus === "inactive") {
|
|
||||||
logger.info("Server is inactive");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await runMongoBackup(mongo, backup);
|
|
||||||
await keepLatestNBackups(backup, server.serverId);
|
|
||||||
} else if (databaseType === "mariadb" && mariadb) {
|
|
||||||
const server = await findServerById(mariadb.serverId as string);
|
|
||||||
if (server.serverStatus === "inactive") {
|
|
||||||
logger.info("Server is inactive");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await runMariadbBackup(mariadb, backup);
|
|
||||||
await keepLatestNBackups(backup, server.serverId);
|
|
||||||
} else if (databaseType === "compose" && compose) {
|
|
||||||
const server = await findServerById(compose.serverId as string);
|
const server = await findServerById(compose.serverId as string);
|
||||||
if (server.serverStatus === "inactive") {
|
if (server.serverStatus === "inactive") {
|
||||||
logger.info("Server is inactive");
|
logger.info("Server is inactive");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await runComposeBackup(compose, backup);
|
await runComposeBackup(compose, backup);
|
||||||
await keepLatestNBackups(backup, server.serverId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (job.type === "server") {
|
if (job.type === "server") {
|
||||||
@ -89,7 +98,10 @@ export const initializeJobs = async () => {
|
|||||||
logger.info("Setting up Jobs....");
|
logger.info("Setting up Jobs....");
|
||||||
|
|
||||||
const servers = await db.query.server.findMany({
|
const servers = await db.query.server.findMany({
|
||||||
where: eq(server.enableDockerCleanup, true),
|
where: and(
|
||||||
|
eq(server.enableDockerCleanup, true),
|
||||||
|
eq(server.serverStatus, "active"),
|
||||||
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
for (const server of servers) {
|
for (const server of servers) {
|
||||||
@ -101,7 +113,7 @@ export const initializeJobs = async () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info({ Quantity: servers.length }, "Servers Initialized");
|
logger.info({ Quantity: servers.length }, "Active Servers Initialized");
|
||||||
|
|
||||||
const backupsResult = await db.query.backups.findMany({
|
const backupsResult = await db.query.backups.findMany({
|
||||||
where: eq(backups.enabled, true),
|
where: eq(backups.enabled, true),
|
||||||
@ -110,6 +122,7 @@ export const initializeJobs = async () => {
|
|||||||
mysql: true,
|
mysql: true,
|
||||||
postgres: true,
|
postgres: true,
|
||||||
mongo: true,
|
mongo: true,
|
||||||
|
compose: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user