whole_func_string: 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;
  }
func_code_string: 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;
  }
func_documentation_string: 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'.