2014-09-01 07:36:25 -07:00
|
|
|
var mdb = require('../lib/MessageDb').default();
|
|
|
|
var logger = require('../lib/logger').logger;
|
|
|
|
var preconditions = require('preconditions').singleton();
|
2014-09-01 15:47:59 -07:00
|
|
|
var microtime = require('microtime');
|
2014-09-01 10:09:58 -07:00
|
|
|
var cron = require('cron');
|
2014-09-01 10:34:20 -07:00
|
|
|
var CronJob = cron.CronJob;
|
2014-09-01 07:36:25 -07:00
|
|
|
|
2014-09-01 10:34:20 -07:00
|
|
|
|
2014-09-01 07:36:25 -07:00
|
|
|
module.exports.init = function(config) {
|
2014-09-01 16:23:23 -07:00
|
|
|
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);
|
|
|
|
});
|
|
|
|
};
|
2014-09-01 10:34:20 -07:00
|
|
|
var job = new CronJob({
|
2014-09-01 16:23:23 -07:00
|
|
|
cronTime: cronTime,
|
|
|
|
onTick: onTick
|
2014-09-01 10:34:20 -07:00
|
|
|
});
|
2014-09-01 16:23:23 -07:00
|
|
|
onTick();
|
|
|
|
job.start();
|
2014-09-01 07:36:25 -07:00
|
|
|
};
|