From 9f1da23e453c41da5e1bcc4a688e19af5402e8c4 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Mon, 1 Sep 2014 20:23:23 -0300 Subject: [PATCH] cleaner plugin: manual tests OK --- lib/MessageDb.js | 7 +++++++ plugins/cleaner.js | 23 +++++++++++++---------- plugins/config-cleaner.js | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/MessageDb.js b/lib/MessageDb.js index ce6be5b1..20b2c8c2 100644 --- a/lib/MessageDb.js +++ b/lib/MessageDb.js @@ -130,6 +130,9 @@ MessageDb.prototype.getAll = function(cb) { .on('data', function(data) { list.push(MessageDb.fromStorage(data)); }) + .on('error', function(err) { + return cb(err); + }) .on('end', function() { return cb(null, list); }); @@ -144,12 +147,16 @@ MessageDb.prototype.removeUpTo = function(ts, cb) { .on('data', function(key) { var parsed = MessageDb.parseKey(key); if (parsed.ts < ts) { + logger.verbose('Deleting message ' + key); dels.push({ type: 'del', key: key }); } }) + .on('error', function(err) { + return cb(err); + }) .on('end', function() { db.batch(dels, function(err) { if (err) return cb(err); diff --git a/plugins/cleaner.js b/plugins/cleaner.js index b8ab3260..9323f655 100644 --- a/plugins/cleaner.js +++ b/plugins/cleaner.js @@ -7,16 +7,19 @@ var CronJob = cron.CronJob; module.exports.init = function(config) { - logger.info('Using cleaner plugin'); - logger.info(config); + var cronTime = config.cronTime || '0 * * * *'; + logger.info('Using cleaner plugin with cronTime ' + cronTime); + var onTick = function() { + var limit = microtime.now() - 1000 * 1000 * config.threshold; + mdb.removeUpTo(limit, function(err, n) { + if (err) logger.error(err); + else logger.info('Ran cleaner task, removed ' + n); + }); + }; var job = new CronJob({ - cronTime: config.cronTime || '0 * * * *', - onTick: function() { - var limit = microtime.now() - 1000 * 1000 * config.threshold; - mdb.removeUpTo(limit, function(err, n) { - logger.verbose('Ran cleaner task, removed ' + n); - }); - }, - start: true + cronTime: cronTime, + onTick: onTick }); + onTick(); + job.start(); }; diff --git a/plugins/config-cleaner.js b/plugins/config-cleaner.js index e0dafacc..0948f685 100644 --- a/plugins/config-cleaner.js +++ b/plugins/config-cleaner.js @@ -1,6 +1,6 @@ module.exports = { cronTime: '* * * * *', - threshold: 10, // in seconds + threshold: 2*24*60*60, // 2 days, in seconds };