pstream-backend/server/tasks/jobs/clear-metrics/weekly.ts
2025-07-17 11:18:15 -06:00

43 lines
No EOL
1.3 KiB
TypeScript

import { defineTask } from '#imports';
import { scopedLogger } from '../../../utils/logger';
import { setupMetrics } from '../../../utils/metrics';
const logger = scopedLogger('tasks:clear-metrics:weekly');
export default defineTask({
meta: {
name: "jobs:clear-metrics:weekly",
description: "Clear weekly metrics every Sunday at midnight",
},
async run() {
logger.info("Clearing weekly metrics");
const startTime = Date.now();
try {
// Clear and reinitialize weekly metrics
await setupMetrics('weekly', true);
const executionTime = Date.now() - startTime;
logger.info(`Weekly metrics cleared in ${executionTime}ms`);
return {
result: {
status: "success",
message: "Successfully cleared weekly metrics",
executionTimeMs: executionTime,
timestamp: new Date().toISOString()
}
};
} catch (error) {
logger.error("Error clearing weekly metrics:", { error: error.message });
return {
result: {
status: "error",
message: error.message || "An error occurred clearing weekly metrics",
executionTimeMs: Date.now() - startTime,
timestamp: new Date().toISOString()
}
};
}
},
});