Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/20/11 13:54:57 (12 years ago)
Author:
spimming
Message:

#1680:

  • merged changes from trunk into branch

' removed pre-build event for multiple app.configs

Location:
branches/HeuristicLab.Hive.Azure
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive.Azure

  • branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs

    r6989 r7215  
    4747    private Semaphore waitShutdownSem = new Semaphore(0, 1);
    4848    private bool abortRequested;
    49     private ISlaveCommunication clientCom;
    5049    private ServiceHost slaveComm;
    5150    private WcfService wcfService;
     
    8685          slaveComm.Open();
    8786        }
    88         clientCom = SlaveClientCom.Instance.ClientCom;
    89 
     87       
    9088        // delete all left over task directories
    9189        pluginManager.CleanPluginTemp();
    92         clientCom.LogMessage("Hive Slave started");
     90        SlaveClientCom.Instance.LogMessage("Hive Slave started");
    9391
    9492        wcfService = WcfService.Instance;
     
    102100          EventLogManager.LogException(ex);
    103101        } else {
    104           //try to log with clientCom. if this works the user sees at least a message,
     102          //try to log with SlaveClientCom.Instance. if this works the user sees at least a message,
    105103          //else an exception will be thrown anyways.
    106           clientCom.LogMessage(string.Format("Uncaught exception: {0} {1} Core is going to shutdown.", ex.ToString(), Environment.NewLine));
     104          SlaveClientCom.Instance.LogMessage(string.Format("Uncaught exception: {0} {1} Core is going to shutdown.", ex.ToString(), Environment.NewLine));
    107105        }
    108106        ShutdownCore();
    109       }
    110       finally {
     107      } finally {
    111108        DeregisterServiceEvents();
    112109        waitShutdownSem.Release();
     
    128125        DetermineAction(container);
    129126        if (!abortRequested) {
    130           clientCom.StatusChanged(configManager.GetStatusForClientConsole());
     127          SlaveClientCom.Instance.StatusChanged(configManager.GetStatusForClientConsole());
    131128        }
    132129      }
     
    144141
    145142    private void WcfService_ExceptionOccured(object sender, EventArgs<Exception> e) {
    146       clientCom.LogMessage(string.Format("Connection to server interruped with exception: {0}", e.Value.Message));
     143      SlaveClientCom.Instance.LogMessage(string.Format("Connection to server interruped with exception: {0}", e.Value.Message));
    147144    }
    148145
    149146    private void WcfService_Connected(object sender, EventArgs e) {
    150       clientCom.LogMessage("Connected successfully to Hive server");
     147      SlaveClientCom.Instance.LogMessage("Connected successfully to Hive server");
    151148    }
    152149
     
    156153    /// <param name="container">The container, containing the message</param>
    157154    private void DetermineAction(MessageContainer container) {
    158       clientCom.LogMessage(string.Format("Message: {0} for task: {1} ", container.Message.ToString(), container.TaskId));
    159 
    160       if (container is ExecutorMessageContainer<Guid>) {
    161         ExecutorMessageContainer<Guid> c = (ExecutorMessageContainer<Guid>)container;
    162         c.execute();
    163       } else if (container is MessageContainer) {
    164         switch (container.Message) {
    165           case MessageContainer.MessageType.CalculateTask:
    166             CalculateTaskAsync(container.TaskId);
    167             break;
    168           case MessageContainer.MessageType.AbortTask:
    169             AbortTaskAsync(container.TaskId);
    170             break;
    171           case MessageContainer.MessageType.StopTask:
    172             StopTaskAsync(container.TaskId);
    173             break;
    174           case MessageContainer.MessageType.PauseTask:
    175             PauseTaskAsync(container.TaskId);
    176             break;
    177           case MessageContainer.MessageType.StopAll:
    178             DoStopAll();
    179             break;
    180           case MessageContainer.MessageType.PauseAll:
    181             DoPauseAll();
    182             break;
    183           case MessageContainer.MessageType.AbortAll:
    184             DoAbortAll();
    185             break;
    186           case MessageContainer.MessageType.ShutdownSlave:
    187             ShutdownCore();
    188             break;
    189           case MessageContainer.MessageType.Restart:
    190             DoStartSlave();
    191             break;
    192           case MessageContainer.MessageType.Sleep:
    193             Sleep();
    194             break;
    195           case MessageContainer.MessageType.SayHello:
    196             wcfService.Connect(configManager.GetClientInfo());
    197             break;
    198           case MessageContainer.MessageType.NewHBInterval:
    199             int interval = wcfService.GetNewHeartbeatInterval(ConfigManager.Instance.GetClientInfo().Id);
    200             if (interval != -1) {
    201               HeartbeatManager.Interval = TimeSpan.FromSeconds(interval);
    202             }
    203             break;
    204         }
    205       } else {
    206         clientCom.LogMessage("Unknown MessageContainer: " + container);
     155      SlaveClientCom.Instance.LogMessage(string.Format("Message: {0} for task: {1} ", container.Message.ToString(), container.TaskId));
     156
     157      switch (container.Message) {
     158        case MessageContainer.MessageType.CalculateTask:
     159          CalculateTaskAsync(container.TaskId);
     160          break;
     161        case MessageContainer.MessageType.AbortTask:
     162          AbortTaskAsync(container.TaskId);
     163          break;
     164        case MessageContainer.MessageType.StopTask:
     165          StopTaskAsync(container.TaskId);
     166          break;
     167        case MessageContainer.MessageType.PauseTask:
     168          PauseTaskAsync(container.TaskId);
     169          break;
     170        case MessageContainer.MessageType.StopAll:
     171          DoStopAll();
     172          break;
     173        case MessageContainer.MessageType.PauseAll:
     174          DoPauseAll();
     175          break;
     176        case MessageContainer.MessageType.AbortAll:
     177          DoAbortAll();
     178          break;
     179        case MessageContainer.MessageType.ShutdownSlave:
     180          ShutdownCore();
     181          break;
     182        case MessageContainer.MessageType.Restart:
     183          DoStartSlave();
     184          break;
     185        case MessageContainer.MessageType.Sleep:
     186          Sleep();
     187          break;
     188        case MessageContainer.MessageType.SayHello:
     189          wcfService.Connect(configManager.GetClientInfo());
     190          break;
     191        case MessageContainer.MessageType.NewHBInterval:
     192          int interval = wcfService.GetNewHeartbeatInterval(ConfigManager.Instance.GetClientInfo().Id);
     193          if (interval != -1) {
     194            HeartbeatManager.Interval = TimeSpan.FromSeconds(interval);
     195          }
     196          break;
    207197      }
    208198    }
     
    212202      .ContinueWith((t) => {
    213203        SlaveStatusInfo.IncrementExceptionOccured();
    214         clientCom.LogMessage(t.Exception.ToString());
     204        SlaveClientCom.Instance.LogMessage(t.Exception.ToString());
    215205      }, TaskContinuationOptions.OnlyOnFaulted);
    216206    }
     
    220210       .ContinueWith((t) => {
    221211         SlaveStatusInfo.IncrementExceptionOccured();
    222          clientCom.LogMessage(t.Exception.ToString());
     212         SlaveClientCom.Instance.LogMessage(t.Exception.ToString());
    223213       }, TaskContinuationOptions.OnlyOnFaulted);
    224214    }
     
    228218       .ContinueWith((t) => {
    229219         SlaveStatusInfo.IncrementExceptionOccured();
    230          clientCom.LogMessage(t.Exception.ToString());
     220         SlaveClientCom.Instance.LogMessage(t.Exception.ToString());
    231221       }, TaskContinuationOptions.OnlyOnFaulted);
    232222    }
     
    236226       .ContinueWith((t) => {
    237227         SlaveStatusInfo.IncrementExceptionOccured();
    238          clientCom.LogMessage(t.Exception.ToString());
     228         SlaveClientCom.Instance.LogMessage(t.Exception.ToString());
    239229       }, TaskContinuationOptions.OnlyOnFaulted);
    240230    }
     
    350340        if (task == null) throw new TaskNotFoundException(e.Value.TaskId);
    351341        task.ExecutionTime = e.Value.ExecutionTime;
    352         TaskData taskData = e.Value.GetTaskData();
     342        TaskData taskData = e.Value2;
    353343        wcfService.UpdateTaskData(task, taskData, configManager.GetClientInfo().Id, TaskState.Paused);
    354344      }
    355345      catch (TaskNotFoundException ex) {
    356         clientCom.LogMessage(ex.ToString());
     346        SlaveClientCom.Instance.LogMessage(ex.ToString());
    357347      }
    358348      catch (Exception ex) {
    359         clientCom.LogMessage(ex.ToString());
     349        SlaveClientCom.Instance.LogMessage(ex.ToString());
    360350      }
    361351    }
     
    368358        if (task == null) throw new TaskNotFoundException(e.Value.TaskId);
    369359        task.ExecutionTime = e.Value.ExecutionTime;
    370         TaskData taskData = e.Value.GetTaskData();
     360        TaskData taskData = e.Value2;
    371361        wcfService.UpdateTaskData(task, taskData, configManager.GetClientInfo().Id, TaskState.Finished);
    372362      }
    373363      catch (TaskNotFoundException ex) {
    374         clientCom.LogMessage(ex.ToString());
     364        SlaveClientCom.Instance.LogMessage(ex.ToString());
    375365      }
    376366      catch (Exception ex) {
    377         clientCom.LogMessage(ex.ToString());
     367        SlaveClientCom.Instance.LogMessage(ex.ToString());
    378368      }
    379369    }
     
    395385          wcfService.UpdateJobState(task.Id, TaskState.Failed, exception.ToString());
    396386        }
    397         clientCom.LogMessage(exception.Message);
     387        SlaveClientCom.Instance.LogMessage(exception.Message);
    398388      }
    399389      catch (TaskNotFoundException ex) {
    400390        SlaveStatusInfo.IncrementExceptionOccured();
    401         clientCom.LogMessage(ex.ToString());
     391        SlaveClientCom.Instance.LogMessage(ex.ToString());
    402392      }
    403393      catch (Exception ex) {
    404394        SlaveStatusInfo.IncrementExceptionOccured();
    405         clientCom.LogMessage(ex.ToString());
     395        SlaveClientCom.Instance.LogMessage(ex.ToString());
    406396      }
    407397    }
     
    411401      SlaveStatusInfo.IncrementExceptionOccured();
    412402      heartbeatManager.AwakeHeartBeatThread();
    413       clientCom.LogMessage(string.Format("Exception occured for task {0}: {1}", e.Value.TaskId, e.Value2.ToString()));
     403      SlaveClientCom.Instance.LogMessage(string.Format("Exception occured for task {0}: {1}", e.Value.TaskId, e.Value2.ToString()));
    414404      wcfService.UpdateJobState(e.Value.TaskId, TaskState.Waiting, e.Value2.ToString());
    415405    }
     
    422412    #region Log Events
    423413    private void log_MessageAdded(object sender, EventArgs<string> e) {
    424       clientCom.LogMessage(e.Value.Split('\t')[1]);
     414      try {
     415        SlaveClientCom.Instance.LogMessage(e.Value.Split('\t')[1]);
     416      }
     417      catch { }
    425418    }
    426419    #endregion
     
    430423    /// </summary>
    431424    private void DoAbortAll() {
    432       clientCom.LogMessage("Aborting all jobs.");
     425      SlaveClientCom.Instance.LogMessage("Aborting all jobs.");
    433426      foreach (Guid taskId in taskManager.TaskIds) {
    434427        AbortTaskAsync(taskId);
     
    440433    /// </summary>
    441434    private void DoPauseAll() {
    442       clientCom.LogMessage("Pausing all jobs.");
     435      SlaveClientCom.Instance.LogMessage("Pausing all jobs.");
    443436      foreach (Guid taskId in taskManager.TaskIds) {
    444437        PauseTaskAsync(taskId);
     
    450443    /// </summary>
    451444    private void DoStopAll() {
    452       clientCom.LogMessage("Stopping all jobs.");
     445      SlaveClientCom.Instance.LogMessage("Stopping all jobs.");
    453446      foreach (Guid taskId in taskManager.TaskIds) {
    454447        StopTaskAsync(taskId);
     
    470463    /// </summary>
    471464    private void ShutdownCore() {
    472       clientCom.LogMessage("Shutdown signal received");
    473       clientCom.LogMessage("Stopping heartbeat");
     465      SlaveClientCom.Instance.LogMessage("Shutdown signal received");
     466      SlaveClientCom.Instance.LogMessage("Stopping heartbeat");
    474467      heartbeatManager.StopHeartBeat();
    475468      abortRequested = true;
     
    477470      DoAbortAll();
    478471
    479       clientCom.LogMessage("Logging out");
     472      SlaveClientCom.Instance.LogMessage("Logging out");
    480473      WcfService.Instance.Disconnect();
    481       clientCom.Shutdown();
     474      SlaveClientCom.Instance.ClientCom.Shutdown();
    482475      SlaveClientCom.Close();
    483476
     
    493486    /// </summary> 
    494487    private void DoStartSlave() {
    495       clientCom.LogMessage("Restart received");
     488      SlaveClientCom.Instance.LogMessage("Restart received");
    496489      configManager.Asleep = false;
    497490    }
     
    502495    /// </summary>   
    503496    private void Sleep() {
    504       clientCom.LogMessage("Sleep received - not accepting any new jobs");
     497      SlaveClientCom.Instance.LogMessage("Sleep received - not accepting any new jobs");
    505498      configManager.Asleep = true;
    506499      DoPauseAll();
Note: See TracChangeset for help on using the changeset viewer.