Example #1
0
		public JobManager(IJobRepository jobRepository,
		                  IWorkerNodeRepository workerNodeRepository,
		                  ManagerConfiguration managerConfiguration,
						  JobPurgeTimer jobPurgeTimer,
						  NodePurgeTimer nodePurgeTimer)
		{
			_jobRepository = jobRepository;
			_workerNodeRepository = workerNodeRepository;
			_managerConfiguration = managerConfiguration;

			_checkAndAssignJob.Elapsed += AssignJobToWorkerNodes_Elapsed;
			_checkAndAssignJob.Interval = _managerConfiguration.CheckNewJobIntervalSeconds*1000;
			_checkAndAssignJob.Start();

			_checkHeartbeatsTimer.Elapsed += CheckHeartbeats_Elapsed;
			_checkHeartbeatsTimer.Interval = _managerConfiguration.AllowedNodeDownTimeSeconds*200;
			_checkHeartbeatsTimer.Start();

			jobPurgeTimer.Start();
			nodePurgeTimer.Start();
		}