whole_func_string: function SyncScheduler(syncQueueImpl, options) {
    if (!syncQueueImpl) {
      throw new Error('syncQueueImpl is required');
    }
    this.syncQueue = syncQueueImpl;
    options = options || {};
    this.syncSchedulerLockName = options.syncSchedulerLockName || 'locks:sync:SyncScheduler';
    this.timeBetweenChecks = options.timeBetweenChecks || 500;
    this.timeBeforeCrashAssumed = options.timeBeforeCrashAssumed || 20000;
    this.stopped = false;
  }
func_code_string: function SyncScheduler(syncQueueImpl, options) {
    if (!syncQueueImpl) {
      throw new Error('syncQueueImpl is required');
    }
    this.syncQueue = syncQueueImpl;
    options = options || {};
    this.syncSchedulerLockName = options.syncSchedulerLockName || 'locks:sync:SyncScheduler';
    this.timeBetweenChecks = options.timeBetweenChecks || 500;
    this.timeBeforeCrashAssumed = options.timeBeforeCrashAssumed || 20000;
    this.stopped = false;
  }
func_documentation_string: A scheduled job that will run to check the status of the datasets that are managed by the sync framework.
  @param {MongodbQueue} syncQueueImpl an instance of the MongodbQueue that is used to push sync requests
  @param {Object} options the configuration options for the scheduler
  @param {String} options.syncSchedulerLockName the name of the sync scheduler lock. Default: "locks:sync:SyncScheduler".
  @param {Number} options.timeBetweenChecks an interval that decides how often the scheduler should be running. In milliseconds. Default: 500.
  @param {Number} options.timeBeforeCrashAssumed a value that decides how long the lock should be accquired for. In milliseconds. Default: 20000.