Skip to content

Commit

Permalink
Added cron job to remove old documents
Browse files Browse the repository at this point in the history
  • Loading branch information
ThaumRystra committed May 29, 2017
1 parent d92bb0f commit 2ddc520
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
1 change: 1 addition & 0 deletions rpg-docs/.meteor/packages
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,4 @@ [email protected]
[email protected]
differential:vulcanize
reactive-dict
percolate:synced-cron
1 change: 1 addition & 0 deletions rpg-docs/.meteor/versions
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ [email protected]
[email protected]
[email protected]
percolate:[email protected]
percolate:[email protected]
[email protected]
raix:[email protected]
[email protected]
Expand Down
43 changes: 43 additions & 0 deletions rpg-docs/server/lib/cron/deleteRemovedDocuments.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
const collections = [
Actions, Attacks, Buffs, Classes, Effects, Experiences,
Features, Notes, Proficiencies, SpellLists, Spells,
Containers, Items,
];

/**
* Deletes all soft removed documents that were removed more than 30 minutes ago
* and were not restored
* @return {Number} Number of documents removed
*/
const deleteOldSoftRemovedDocs = function(){
let numRemoved = 0;
const now = new Date();
const thirtyMinutesAgo = new Date(now.getTime() - 30*60000);
_.each(collections, (collection) => {
numRemoved += collection.remove({
removed: true,
removedAt: {$lt: thirtyMinutesAgo} // dates *before* 30 minutes ago
});
});
return numRemoved;
};

SyncedCron.add({
name: "Delete all soft removed items that haven't been restored",
schedule: function(parser) {
return parser.text('every 6 hours');
},
job: function() {
deleteOldSoftRemovedDocs();
}
});

// Add a method to manually trigger removal
Meteor.methods({
deleteOldSoftRemovedDocs() {
const user = Meteor.users.findOne(this.userId);
if (user && _.contains(user.roles, "admin")){
deleteOldSoftRemovedDocs();
}
},
});

0 comments on commit 2ddc520

Please sign in to comment.