Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/12/11 18:04:25 (13 years ago)
Author:
ascheibe
Message:

#1233

  • fixed a bug in the Slave UI
  • finished renaming Webservice and Dao methods to be consistent with Job/Task naming
  • some cosmetic changes and project dependencies cleanups
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.3/Manager/EventManager.cs

    r6721 r6743  
    2929namespace HeuristicLab.Services.Hive {
    3030  /// <summary>
    31   /// This class offers methods for cleaning up offline slaves and jobs
     31  /// This class offers methods for cleaning up offline slaves and task
    3232  /// </summary>
    3333  public class EventManager : IEventManager {
     
    4545      log.Log("EventManager.Cleanup()");
    4646      SetTimeoutSlavesOffline();
    47       SetTimeoutJobsWaiting();
    48       FinishParentJobs();
     47      SetTimeoutTasksWaiting();
     48      FinishParentTasks();
    4949      UpdateStatistics();
    5050    }
     
    7272
    7373    /// <summary>
    74     /// Searches for slaves which are timed out, puts them and their jobs offline
     74    /// Searches for slaves which are timed out, puts them and their task offline
    7575    /// </summary>
    7676    private void SetTimeoutSlavesOffline() {
     
    7979        if (!slave.LastHeartbeat.HasValue || (DateTime.Now - slave.LastHeartbeat.Value) > HeuristicLab.Services.Hive.Properties.Settings.Default.SlaveHeartbeatTimeout) {
    8080          slave.SlaveState = DT.SlaveState.Offline;
    81           SetJobsWaiting(slave.Id);
     81          SetTasksWaiting(slave.Id);
    8282          dao.UpdateSlave(slave);
    8383        }
     
    8686
    8787    /// <summary>
    88     /// Looks for parent jobs which have FinishWhenChildJobsFinished and set their state to finished
     88    /// Looks for parent tasks which have FinishWhenChildJobsFinished and set their state to finished
    8989    /// </summary>
    90     private void FinishParentJobs() {
    91       var parentJobsToFinish = dao.GetParentJobs(dao.GetResources(x => true).Select(x => x.Id), 0, true);
    92       foreach (var job in parentJobsToFinish) {
    93         dao.UpdateJobState(job.Id, TaskState.Finished, null, null, string.Empty);
     90    private void FinishParentTasks() {
     91      var parentTasksToFinish = dao.GetParentTasks(dao.GetResources(x => true).Select(x => x.Id), 0, true);
     92      foreach (var task in parentTasksToFinish) {
     93        dao.UpdateTaskState(task.Id, TaskState.Finished, null, null, string.Empty);
    9494      }
    9595    }
    9696
    97     private void SetJobsWaiting(Guid slaveId) {
    98       var jobs = dao.GetJobs(x => x.State == TaskState.Calculating).Where(x => x.StateLog.Last().SlaveId == slaveId);
    99       foreach (var j in jobs) {
    100         DT.Task job = dao.UpdateJobState(j.Id, TaskState.Waiting, slaveId, null, "Slave timed out.");
    101         job.Command = null;
    102         dao.UpdateJob(job);
     97    private void SetTasksWaiting(Guid slaveId) {
     98      var tasks = dao.GetTasks(x => x.State == TaskState.Calculating).Where(x => x.StateLog.Last().SlaveId == slaveId);
     99      foreach (var j in tasks) {
     100        DT.Task task = dao.UpdateTaskState(j.Id, TaskState.Waiting, slaveId, null, "Slave timed out.");
     101        task.Command = null;
     102        dao.UpdateTask(task);
    103103      }
    104104    }
    105105
    106106    /// <summary>
    107     /// Looks for jobs which have not sent heartbeats for some time and reschedules them for calculation
     107    /// Looks for task which have not sent heartbeats for some time and reschedules them for calculation
    108108    /// </summary>
    109     private void SetTimeoutJobsWaiting() {
    110       var jobs = dao.GetJobs(x => (x.State == TaskState.Calculating && (DateTime.Now - x.LastHeartbeat) > HeuristicLab.Services.Hive.Properties.Settings.Default.CalculatingJobHeartbeatTimeout)
     109    private void SetTimeoutTasksWaiting() {
     110      var tasks = dao.GetTasks(x => (x.State == TaskState.Calculating && (DateTime.Now - x.LastHeartbeat) > HeuristicLab.Services.Hive.Properties.Settings.Default.CalculatingJobHeartbeatTimeout)
    111111                               || (x.State == TaskState.Transferring && (DateTime.Now - x.LastHeartbeat) > HeuristicLab.Services.Hive.Properties.Settings.Default.TransferringJobHeartbeatTimeout));
    112       foreach (var j in jobs) {
    113         DT.Task job = dao.UpdateJobState(j.Id, TaskState.Waiting, null, null, "Slave timed out.");
    114         job.Command = null;
    115         dao.UpdateJob(job);
     112      foreach (var j in tasks) {
     113        DT.Task task = dao.UpdateTaskState(j.Id, TaskState.Waiting, null, null, "Slave timed out.");
     114        task.Command = null;
     115        dao.UpdateTask(task);
    116116      }
    117117    }
Note: See TracChangeset for help on using the changeset viewer.