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:
@@ -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,8 +23,17 @@ 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 (backupType === "database") {
|
||||||
if (databaseType === "postgres" && postgres) {
|
if (databaseType === "postgres" && postgres) {
|
||||||
const server = await findServerById(postgres.serverId as string);
|
const server = await findServerById(postgres.serverId as string);
|
||||||
if (server.serverStatus === "inactive") {
|
if (server.serverStatus === "inactive") {
|
||||||
@@ -57,14 +66,14 @@ export const runJobs = async (job: QueueJob) => {
|
|||||||
}
|
}
|
||||||
await runMariadbBackup(mariadb, backup);
|
await runMariadbBackup(mariadb, backup);
|
||||||
await keepLatestNBackups(backup, server.serverId);
|
await keepLatestNBackups(backup, server.serverId);
|
||||||
} else if (databaseType === "compose" && compose) {
|
}
|
||||||
|
} else if (backupType === "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,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user