Files
home/Projects/kompose/news/apps/backend/src/index.ts

45 lines
989 B
TypeScript
Raw Normal View History

2025-10-10 16:43:21 +02:00
export type * from "./app";
export type * from "../prisma/client";
export type * from "./types";
2025-10-08 10:35:48 +02:00
2025-10-10 16:43:21 +02:00
import { app } from "./app";
import { initializeCronJobs } from "./cron/cron";
import { prisma } from "./utils/prisma";
2025-10-08 10:35:48 +02:00
2025-10-10 16:43:21 +02:00
const cronController = initializeCronJobs();
2025-10-08 10:35:48 +02:00
2025-10-10 16:43:21 +02:00
const PORT = process.env.PORT || 5000;
2025-10-08 10:35:48 +02:00
prisma.$connect().then(async () => {
2025-10-10 16:43:21 +02:00
console.log("Connected to database");
// For backwards compatibility, set all messages that have campaign status === "CANCELLED" to "CANCELLED"
await prisma.message.updateMany({
where: {
Campaign: {
status: "CANCELLED",
},
status: {
in: ["QUEUED", "PENDING", "RETRYING"],
},
},
data: {
status: "CANCELLED",
},
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
});
2025-10-08 10:35:48 +02:00
// Handle graceful shutdown
const shutdown = () => {
2025-10-10 16:43:21 +02:00
console.log("Shutting down cron jobs...");
cronController.stop();
process.exit(0);
};
2025-10-08 10:35:48 +02:00
2025-10-10 16:43:21 +02:00
process.on("SIGINT", shutdown);
process.on("SIGTERM", shutdown);