From f4d3368fb478a6b20a95027a725e3fed87aa532a Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Tue, 25 Sep 2018 10:58:01 +0200 Subject: [PATCH] Updated cron job to clean database of soft removed documents --- app/.meteor/packages | 2 +- app/.meteor/versions | 2 +- app/server/lib/cron/deleteRemovedDocuments.js | 18 +++++++++++------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/.meteor/packages b/app/.meteor/packages index d28447d3..b0f17e3d 100644 --- a/app/.meteor/packages +++ b/app/.meteor/packages @@ -46,7 +46,6 @@ ecmascript@0.11.1 es5-shim@4.8.0 differential:vulcanize reactive-dict@1.2.0 -percolate:synced-cron ongoworks:speakingurl service-configuration@1.0.11 google-config-ui@1.0.0 @@ -54,3 +53,4 @@ dynamic-import@0.4.0 ddp-rate-limiter@1.0.7 rate-limit@1.0.9 iron:router +littledata:synced-cron diff --git a/app/.meteor/versions b/app/.meteor/versions index e5c754a6..80766fa9 100644 --- a/app/.meteor/versions +++ b/app/.meteor/versions @@ -64,6 +64,7 @@ jquery@1.11.11 lai:collection-extensions@0.2.1_1 launch-screen@1.1.1 less@2.7.12 +littledata:synced-cron@1.5.1 livedata@1.0.18 localstorage@1.2.0 logging@1.1.20 @@ -93,7 +94,6 @@ observe-sequence@1.0.16 ongoworks:speakingurl@9.0.0 ordered-dict@1.1.0 percolate:migrations@0.9.8 -percolate:synced-cron@1.3.2 promise@0.11.1 raix:eventemitter@0.1.3 random@1.1.0 diff --git a/app/server/lib/cron/deleteRemovedDocuments.js b/app/server/lib/cron/deleteRemovedDocuments.js index d450aaec..4be8aa27 100644 --- a/app/server/lib/cron/deleteRemovedDocuments.js +++ b/app/server/lib/cron/deleteRemovedDocuments.js @@ -15,29 +15,33 @@ Meteor.startup(() => { const now = new Date(); const thirtyMinutesAgo = new Date(now.getTime() - 30*60000); _.each(collections, (collection) => { - numRemoved += collection.remove({ + collection.remove({ removed: true, removedAt: {$lt: thirtyMinutesAgo} // dates *before* 30 minutes ago + }, function(error, result){ + if (error){ + console.error(error); + } }); }); - return numRemoved; }; SyncedCron.add({ - name: "Delete all soft removed items that haven't been restored", + name: "deleteSoftRemovedDocs", schedule: function(parser) { - return parser.text('every 6 hours'); + return parser.text('every 2 hours'); }, - job: function() { - deleteOldSoftRemovedDocs(); - } + job: deleteOldSoftRemovedDocs, }); + SyncedCron.start(); + // Add a method to manually trigger removal Meteor.methods({ deleteOldSoftRemovedDocs() { const user = Meteor.users.findOne(this.userId); if (user && _.contains(user.roles, "admin")){ + this.unblock(); return deleteOldSoftRemovedDocs(); } },