73 lines
2.1 KiB
TypeScript
73 lines
2.1 KiB
TypeScript
import { Elysia } from "elysia";
|
|
import cors from "@elysiajs/cors";
|
|
import { authController } from "./controllers/auth";
|
|
import { sessionController } from "./controllers/session";
|
|
import { companyController } from "./controllers/company";
|
|
import { branchController } from "./controllers/branch";
|
|
import { serverController } from "./controllers/server";
|
|
import { serverSessionService } from "./services/serverSession";
|
|
|
|
const app = new Elysia();
|
|
|
|
app.use(
|
|
cors({
|
|
origin: true,
|
|
// credentials: true,
|
|
})
|
|
);
|
|
|
|
app.use(authController);
|
|
app.use(sessionController);
|
|
app.use(companyController);
|
|
app.use(branchController);
|
|
app.use(serverController);
|
|
|
|
app.listen(3000);
|
|
|
|
console.log(
|
|
`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
|
|
);
|
|
|
|
// Запуск фоновой задачи для автоматического назначения серверов
|
|
const AUTO_ASSIGN_INTERVAL_MS = parseInt(
|
|
process.env.AUTO_ASSIGN_INTERVAL_MS || "1000",
|
|
10
|
|
); // 1 секунда по умолчанию
|
|
|
|
async function autoAssignServersTask() {
|
|
try {
|
|
const results = await serverSessionService.autoAssignServers();
|
|
|
|
if (results.total > 0) {
|
|
console.log(
|
|
`[${new Date().toISOString()}] 🎯 Auto-assign: ${
|
|
results.assigned
|
|
} assigned, ${results.failed} failed из ${results.total}`
|
|
);
|
|
|
|
if (results.errors.length > 0) {
|
|
console.error(
|
|
`[${new Date().toISOString()}] ❌ Ошибки назначения:`,
|
|
results.errors
|
|
);
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error(
|
|
`[${new Date().toISOString()}] ❌ Ошибка auto-assign:`,
|
|
error instanceof Error ? error.message : error
|
|
);
|
|
}
|
|
|
|
// Планируем следующий запуск
|
|
setTimeout(autoAssignServersTask, AUTO_ASSIGN_INTERVAL_MS);
|
|
}
|
|
|
|
// Запускаем через 1 секунду после старта сервера
|
|
setTimeout(() => {
|
|
console.log(
|
|
`[${new Date().toISOString()}] 🤖 Запуск фоновой задачи auto-assign (интервал: ${AUTO_ASSIGN_INTERVAL_MS}ms)`
|
|
);
|
|
autoAssignServersTask();
|
|
}, 1000);
|