diff --git a/util/dailyS3Scheduler.ts b/util/dailyS3Scheduler.ts index 184bc64..7617e93 100644 --- a/util/dailyS3Scheduler.ts +++ b/util/dailyS3Scheduler.ts @@ -60,18 +60,21 @@ export class DailyS3Scheduler { SCHEDULER_QUEUE_NAME, async (job) => { logger.info(`[Scheduler] Processing job: ${job.name} (ID: ${job.id})`); - + try { if (job.name === "daily-s3-sync") { - await this.performDailySync(); + //await this.performDailySync(); + logger.info("[Scheduler] Daily sync job completed"); } else if (job.name === "daily-analytics") { // Add random delay of 0-90 minutes to prevent API flooding const randomDelayMinutes = Math.floor(Math.random() * 91); // 0-90 minutes const randomDelayMs = randomDelayMinutes * 60 * 1000; - - logger.info(`[Scheduler] Analytics job will execute in ${randomDelayMinutes} minutes (${new Date(Date.now() + randomDelayMs).toISOString()})`); - - await new Promise(resolve => setTimeout(resolve, randomDelayMs)); + + logger.info( + `[Scheduler] Analytics job will execute in ${randomDelayMinutes} minutes (${new Date(Date.now() + randomDelayMs).toISOString()})` + ); + + await new Promise((resolve) => setTimeout(resolve, randomDelayMs)); await this.triggerJobAnalysis(); } } catch (error) { @@ -101,7 +104,7 @@ export class DailyS3Scheduler { // Add repeatable jobs (cron-like scheduling) // Only one instance across all workers will execute these at the scheduled time - + // Daily S3 sync at 1 AM PST await this.schedulerQueue.add( "daily-s3-sync", @@ -129,14 +132,15 @@ export class DailyS3Scheduler { ); this.isInitialized = true; - logger.info(`[Scheduler] Daily scheduler started using BullMQ (Worker ${process.env.NODE_APP_INSTANCE || "N/A"})`); - + logger.info( + `[Scheduler] Daily scheduler started using BullMQ (Worker ${process.env.NODE_APP_INSTANCE || "N/A"})` + ); + // Log next scheduled runs const status = await this.getStatus(); - status.nextRun.forEach(task => { + status.nextRun.forEach((task) => { logger.info(`[Scheduler] ${task.name} - Next run: ${task.nextRun}`); }); - } catch (error) { logger.error("[Scheduler] Failed to start scheduler:", error); throw error; @@ -234,8 +238,8 @@ export class DailyS3Scheduler { try { const repeatableJobs = await this.schedulerQueue.getRepeatableJobs(); - - return repeatableJobs.map(job => ({ + + return repeatableJobs.map((job) => ({ name: job.name || job.id || "unknown", nextRun: job.next ? new Date(job.next) : null, status: "scheduled" diff --git a/util/s3Sync.ts b/util/s3Sync.ts index 3965d04..be9cb50 100644 --- a/util/s3Sync.ts +++ b/util/s3Sync.ts @@ -353,7 +353,7 @@ async function getDirectoryStats( if (stat.isDirectory()) { // Skip thumbs and ConvertedOriginals folders (case-insensitive) const itemLower = item.toLowerCase(); - if (itemLower === "thumbs" || itemLower === "convertedoriginals") { + if (itemLower === "thumbs" || itemLower === "convertedoriginal" || itemLower === "bills") { continue; }