Move queue to redis to prevent multiple firings.

This commit is contained in:
Patrick Fic
2025-11-10 11:43:05 -08:00
parent f575f6ab9a
commit f6a9486284
3 changed files with 213 additions and 259 deletions

View File

@@ -191,16 +191,16 @@ app.get("/sync/status", ValidateImsToken, async (req, res) => {
});
// Manual S3 sync trigger endpoint (for testing)
app.post("/sync/trigger", ValidateImsToken, async (req, res) => {
try {
await dailyS3Scheduler.triggerManualSync();
res.json({ success: true, message: "Manual sync triggered successfully" });
} catch (error) {
logger.error("Manua--l sync failed:", error);
const errorMessage = error instanceof Error ? error.message : "Unknown error";
res.status(500).json({ success: false, message: "Manual sync failed", error: errorMessage });
}
});
// app.post("/sync/trigger", ValidateImsToken, async (req, res) => {
// try {
// await dailyS3Scheduler.triggerManualSync();
// res.json({ success: true, message: "Manual sync triggered successfully" });
// } catch (error) {
// logger.error("Manua--l sync failed:", error);
// const errorMessage = error instanceof Error ? error.message : "Unknown error";
// res.status(500).json({ success: false, message: "Manual sync failed", error: errorMessage });
// }
// });
// Jobs directory analysis endpoint
app.get("/jobs/analysis", ValidateImsToken, async (req, res) => {
@@ -220,9 +220,14 @@ app.use(FolderPaths.StaticPath, express.static(FolderPaths.Root, { etag: false,
app.use("/assets", express.static("/assets", { etag: false, maxAge: 30 * 1000 }));
// Start the daily S3 sync scheduler
dailyS3Scheduler.start().catch((error) => {
logger.error("Failed to start sync scheduler:", error);
});
dailyS3Scheduler
.start()
.then(() => {
logger.info("Sync scheduler started successfully.");
})
.catch((error) => {
logger.error("Failed to start sync scheduler:", error);
});
app.listen(port, () => {
logger.info(`ImEX Media Server is running at http://localhost:${port}`);