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.
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;
}