Dispatch-Chron Jobs in Core-Server verschoben #65

This commit is contained in:
PxlLoewe
2025-07-16 00:15:38 -07:00
parent fc698b22d7
commit 844cfa4b56
8 changed files with 62 additions and 21 deletions

View File

@@ -1,3 +1,5 @@
REDIS_HOST=localhost
REDIS_PORT=6379
DISCORD_SERVER_PORT=3005
DISCORD_GUILD_ID=1077269395019141140
DISCORD_OAUTH_CLIENT_ID=930384053344034846

View File

@@ -3,10 +3,19 @@ import express from "express";
import { createServer } from "http";
import router from "routes/router";
import cors from "cors";
import { Server } from "socket.io";
import { createAdapter } from "@socket.io/redis-adapter";
import { pubClient, subClient } from "modules/redis";
import "modules/chron";
const app = express();
const server = createServer(app);
export const io = new Server(server, {
adapter: createAdapter(pubClient, subClient),
cors: {},
});
app.use(cors());
app.use(express.json());
app.use(router);

View File

@@ -58,9 +58,8 @@ const removeClosedMissions = async () => {
l.data?.newFMSstatus === "6"
);
});
return (
status4Log !== -1 &&
(status4Log !== -1 || status8Log !== -1) &&
(status1Log !== -1 || status6Log !== -1) &&
(status4Log < status1Log ||
status8Log < status1Log ||
@@ -124,6 +123,7 @@ const removeClosedMissions = async () => {
console.log(`Mission ${mission.id} closed due to inactivity.`);
});
};
const removeConnectedAircrafts = async () => {
const connectedAircrafts = await prisma.connectedAircraft.findMany({
where: {
@@ -144,7 +144,7 @@ const removeConnectedAircrafts = async () => {
}
});
};
removeClosedMissions();
cron.schedule("*/1 * * * *", async () => {
try {
await removeClosedMissions();

View File

@@ -0,0 +1,13 @@
import { createClient, RedisClientType } from "redis";
export const pubClient: RedisClientType = createClient({
url: `redis://${process.env.REDIS_HOST}:${process.env.REDIS_PORT}`,
});
export const subClient: RedisClientType = pubClient.duplicate();
Promise.all([pubClient.connect(), subClient.connect()]).then(() => {
console.log("Redis connected");
});
pubClient.on("error", (err: unknown) => console.log("Redis Client Error", err));
subClient.on("error", (err: unknown) => console.log("Redis Client Error", err));

View File

@@ -20,6 +20,7 @@
"typescript": "latest"
},
"dependencies": {
"@socket.io/redis-adapter": "^8.3.0",
"axios": "^1.9.0",
"cors": "^2.8.5",
"cron": "^4.3.1",
@@ -30,6 +31,8 @@
"nodemon": "^3.1.10",
"prom-client": "^15.1.3",
"react": "^19.1.0",
"redis": "^5.1.1",
"socket.io": "^4.8.1",
"tsx": "^4.19.4"
}
}

View File

@@ -13,7 +13,6 @@ import { handleConnectDesktop } from "socket-events/connect-desktop";
import cookieParser from "cookie-parser";
import cors from "cors";
import { authMiddleware } from "modules/expressMiddleware";
import "modules/chron";
const app = express();
const server = createServer(app);

View File

@@ -7,12 +7,6 @@ export const subClient: RedisClientType = pubClient.duplicate();
Promise.all([pubClient.connect(), subClient.connect()]).then(() => {
console.log("Redis connected");
pubClient.keys("dispatchers*").then((keys) => {
if (!keys) return;
keys.forEach(async (key) => {
await pubClient.json.del(key);
});
});
});
pubClient.on("error", (err) => console.log("Redis Client Error", err));