File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { cronJob } from "./cron.utils"
2+ import { prisma } from "../utils/prisma"
3+ import dayjs from "dayjs"
4+
5+ export const cleanupWebhookLogsCron = cronJob (
6+ "cleanup-webhook-logs" ,
7+ async ( ) => {
8+ const organizations = await prisma . organization . findMany ( {
9+ include : {
10+ GeneralSettings : true ,
11+ } ,
12+ } )
13+
14+ let totalDeletedLogs = 0
15+
16+ for ( const org of organizations ) {
17+ const cleanupIntervalDays = org . GeneralSettings ?. cleanupInterval ?? 90
18+ const cleanupOlderThanDate = dayjs ( )
19+ . subtract ( cleanupIntervalDays , "days" )
20+ . toDate ( )
21+
22+ try {
23+ const deletedResult = await prisma . webhookLog . deleteMany ( {
24+ where : {
25+ Webhook : {
26+ organizationId : org . id ,
27+ } ,
28+ createdAt : {
29+ lt : cleanupOlderThanDate ,
30+ } ,
31+ } ,
32+ } )
33+
34+ if ( deletedResult . count > 0 ) {
35+ console . log (
36+ `Webhook logs cleanup for org ${ org . id } : Deleted ${ deletedResult . count } logs older than ${ cleanupIntervalDays } days.`
37+ )
38+ totalDeletedLogs += deletedResult . count
39+ }
40+ } catch ( error ) {
41+ console . error ( `Error deleting webhook logs for org ${ org . id } : ${ error } ` )
42+ continue
43+ }
44+ }
45+
46+ if ( totalDeletedLogs > 0 ) {
47+ console . log (
48+ `Webhook logs cleanup job finished. Total deleted logs: ${ totalDeletedLogs } .`
49+ )
50+ } else {
51+ console . log ( "Webhook logs cleanup job finished. No logs to delete." )
52+ }
53+ }
54+ )
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import cron from "node-cron"
22import { sendMessagesCron } from "./sendMessages"
33import { dailyMaintenanceCron } from "./dailyMaintenance"
44import { processQueuedCampaigns } from "./processQueuedCampaigns"
5+ import { cleanupWebhookLogsCron } from "./cleanupWebhookLogs"
56
67type CronJob = {
78 name : string
@@ -31,10 +32,18 @@ const processQueuedCampaignsJob: CronJob = {
3132 enabled : true ,
3233}
3334
35+ const cleanupWebhookLogsJob : CronJob = {
36+ name : "cleanup-webhook-logs" ,
37+ schedule : "0 1 * * *" , // Runs daily at 1 AM
38+ job : cleanupWebhookLogsCron ,
39+ enabled : true ,
40+ }
41+
3442const cronJobs : CronJob [ ] = [
3543 sendMessagesJob ,
3644 dailyMaintenanceJob ,
3745 processQueuedCampaignsJob ,
46+ cleanupWebhookLogsJob ,
3847]
3948
4049export const initializeCronJobs = ( ) => {
Original file line number Diff line number Diff line change 11{
2- "version" : " 0.9.20-beta.4 " ,
2+ "version" : " 0.9.20-beta.5 " ,
33 "name" : " letterspace" ,
44 "private" : true ,
55 "scripts" : {
You can’t perform that action at this time.
0 commit comments