upd
This commit is contained in:
@@ -19,6 +19,9 @@ export const serversTable = pgTable("servers", {
|
||||
.notNull()
|
||||
.defaultNow()
|
||||
.$onUpdate(() => new Date()),
|
||||
status: varchar("status", { enum: ["online", "offline"] })
|
||||
.notNull()
|
||||
.default("online"),
|
||||
});
|
||||
|
||||
export const serversRelations = relations(serversTable, ({ one, many }) => ({
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { differenceInSeconds } from "date-fns";
|
||||
import { Elysia } from "elysia";
|
||||
import cors from "@elysiajs/cors";
|
||||
import authController from "./controllers/authController";
|
||||
@@ -6,6 +7,10 @@ import sessionsController from "./controllers/sessionsController";
|
||||
import serversController from "./controllers/serversController";
|
||||
import appsController from "./controllers/appsController";
|
||||
import { clientsController } from "./controllers/clientsController";
|
||||
import db from "./db";
|
||||
import { serversTable } from "./db/schema/servers";
|
||||
import { eq } from "drizzle-orm";
|
||||
import cron from "node-cron";
|
||||
|
||||
const app = new Elysia();
|
||||
|
||||
@@ -24,6 +29,19 @@ app.use(clientsController);
|
||||
|
||||
app.listen(3000);
|
||||
|
||||
async function checkServersStatus() {
|
||||
const servers = await db.query.serversTable.findMany();
|
||||
for (const { status, updatedAt, id } of servers) {
|
||||
if (status === "online" && differenceInSeconds(new Date(), updatedAt) > 20)
|
||||
await db
|
||||
.update(serversTable)
|
||||
.set({ status: "offline" })
|
||||
.where(eq(serversTable.id, id));
|
||||
}
|
||||
}
|
||||
|
||||
cron.schedule("*/10 * * * * *", checkServersStatus);
|
||||
|
||||
console.log(
|
||||
`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user