Changeset 5786 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/LifecycleManager.cs
- Timestamp:
- 03/22/11 11:36:53 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/LifecycleManager.cs
r5779 r5786 25 25 log.Log("LifecycleManager.Cleanup()"); 26 26 SetTimeoutSlavesOffline(); 27 FinishParentJobs(); 27 SetTimeoutJobsWaiting(); 28 FinishParentJobs(); 28 29 } 29 30 … … 34 35 var slaves = dao.GetSlaves(x => x.SlaveState != SlaveState.Offline); 35 36 foreach (Slave slave in slaves) { 36 if (!slave.LastHeartbeat.HasValue || (DateTime.Now - slave.LastHeartbeat.Value) .TotalSeconds > ApplicationConstants.HeartbeatTimeout) {37 if (!slave.LastHeartbeat.HasValue || (DateTime.Now - slave.LastHeartbeat.Value) > ApplicationConstants.SlaveHeartbeatTimeout) { 37 38 slave.SlaveState = SlaveState.Offline; 38 39 SetJobsWaiting(slave.Id); … … 55 56 var jobs = dao.GetJobs(x => x.State == JobState.Calculating).Where(x => x.StateLog.Last().SlaveId == slaveId); 56 57 foreach (var j in jobs) { 57 Job job = dao.UpdateJobState(j.Id, JobState.Waiting, slaveId, null, "Slave timed out ");58 Job job = dao.UpdateJobState(j.Id, JobState.Waiting, slaveId, null, "Slave timed out."); 58 59 job.Command = null; 59 60 dao.UpdateJob(job); … … 61 62 } 62 63 64 /// <summary> 65 /// Looks for jobs which have not sent heartbeats for some time and reschedules them for calculation 66 /// </summary> 67 private void SetTimeoutJobsWaiting() { 68 var jobs = dao.GetJobs(x => (x.State == JobState.Calculating && (DateTime.Now - x.LastHeartbeat) > ApplicationConstants.CalculatingJobHeartbeatTimeout) 69 || (x.State == JobState.Transferring && (DateTime.Now - x.LastHeartbeat) > ApplicationConstants.TransferringJobHeartbeatTimeout)); 70 foreach (var j in jobs) { 71 Job job = dao.UpdateJobState(j.Id, JobState.Waiting, null, null, "Slave timed out."); 72 job.Command = null; 73 dao.UpdateJob(job); 74 } 75 } 63 76 } 64 77 }
Note: See TracChangeset
for help on using the changeset viewer.