45 lines
989 B
TypeScript
45 lines
989 B
TypeScript
export type * from "./app";
|
|
export type * from "../prisma/client";
|
|
export type * from "./types";
|
|
|
|
import { app } from "./app";
|
|
import { initializeCronJobs } from "./cron/cron";
|
|
import { prisma } from "./utils/prisma";
|
|
|
|
const cronController = initializeCronJobs();
|
|
|
|
const PORT = process.env.PORT || 5000;
|
|
|
|
prisma.$connect().then(async () => {
|
|
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}`);
|
|
});
|
|
});
|
|
|
|
// Handle graceful shutdown
|
|
const shutdown = () => {
|
|
console.log("Shutting down cron jobs...");
|
|
cronController.stop();
|
|
process.exit(0);
|
|
};
|
|
|
|
process.on("SIGINT", shutdown);
|
|
process.on("SIGTERM", shutdown);
|