lib/datasetClientsCleaner.js
function DatasetClientsCleaner(opts) {
  this.retentionPeriod = opts.retentionPeriod || '24h';
  this.checkFrequency = opts.checkFrequency || '1h';
  this.cleanerLockName = opts.cleanerLockName || 'locks:sync:DatasetCleaner';
  this.lockTimeout = parseDuration(this.checkFrequency) / 2;
  this.job;
}
function DatasetClientsCleaner(opts) {
  this.retentionPeriod = opts.retentionPeriod || '24h';
  this.checkFrequency = opts.checkFrequency || '1h';
  this.cleanerLockName = opts.cleanerLockName || 'locks:sync:DatasetCleaner';
  this.lockTimeout = parseDuration(this.checkFrequency) / 2;
  this.job;
}
Constructor for DatasetClientsCleaner.

A DatasetClientsCleaner will check the status of all the dataset clients in the db, and if any of them hasn't been accessed for the past <retentionPeriod> time, it will remove them from the db to save space.
By default, it will remove dataset clients that haven't been active for 1 day and it will run the check every hour.
Developer can change those parameters via the configuration.

@param {Object} opts configuration options for the DatasetClientsCleaner.
@param {String} retentionPeriod the maximum time the dataset client can be kept in db after it's last access tim. Support format: https://www.npmjs.com/package/parse-duration. Default is '24h'.
@param {String} checkFrequency how often the checks should be running. Default is '1h'.