Updated cron job to clean database of soft removed documents

This commit is contained in:
Stefan Zermatten
2018-09-25 10:58:01 +02:00
parent 1de9fb558a
commit f4d3368fb4
3 changed files with 13 additions and 9 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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();
}
},