- Timestamp:
- 12/20/11 13:54:57 (12 years ago)
- Location:
- branches/HeuristicLab.Hive.Azure
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive.Azure
- Property svn:ignore
-
old new 4 4 *.suo 5 5 *.vsp 6 Doxygen 6 7 Google.ProtocolBuffers-0.9.1.dll 7 8 HeuristicLab 3.3.5.1.ReSharper.user 8 9 HeuristicLab 3.3.6.0.ReSharper.user 9 10 HeuristicLab.4.5.resharper.user 11 HeuristicLab.ExtLibs.6.0.ReSharper.user 10 12 HeuristicLab.resharper.user 11 13 ProtoGen.exe … … 16 18 bin 17 19 protoc.exe 18 HeuristicLab.ExtLibs.6.0.ReSharper.user19 Doxygen
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs
r6989 r7215 47 47 private Semaphore waitShutdownSem = new Semaphore(0, 1); 48 48 private bool abortRequested; 49 private ISlaveCommunication clientCom;50 49 private ServiceHost slaveComm; 51 50 private WcfService wcfService; … … 86 85 slaveComm.Open(); 87 86 } 88 clientCom = SlaveClientCom.Instance.ClientCom; 89 87 90 88 // delete all left over task directories 91 89 pluginManager.CleanPluginTemp(); 92 clientCom.LogMessage("Hive Slave started");90 SlaveClientCom.Instance.LogMessage("Hive Slave started"); 93 91 94 92 wcfService = WcfService.Instance; … … 102 100 EventLogManager.LogException(ex); 103 101 } 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, 105 103 //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)); 107 105 } 108 106 ShutdownCore(); 109 } 110 finally { 107 } finally { 111 108 DeregisterServiceEvents(); 112 109 waitShutdownSem.Release(); … … 128 125 DetermineAction(container); 129 126 if (!abortRequested) { 130 clientCom.StatusChanged(configManager.GetStatusForClientConsole());127 SlaveClientCom.Instance.StatusChanged(configManager.GetStatusForClientConsole()); 131 128 } 132 129 } … … 144 141 145 142 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)); 147 144 } 148 145 149 146 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"); 151 148 } 152 149 … … 156 153 /// <param name="container">The container, containing the message</param> 157 154 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; 207 197 } 208 198 } … … 212 202 .ContinueWith((t) => { 213 203 SlaveStatusInfo.IncrementExceptionOccured(); 214 clientCom.LogMessage(t.Exception.ToString());204 SlaveClientCom.Instance.LogMessage(t.Exception.ToString()); 215 205 }, TaskContinuationOptions.OnlyOnFaulted); 216 206 } … … 220 210 .ContinueWith((t) => { 221 211 SlaveStatusInfo.IncrementExceptionOccured(); 222 clientCom.LogMessage(t.Exception.ToString());212 SlaveClientCom.Instance.LogMessage(t.Exception.ToString()); 223 213 }, TaskContinuationOptions.OnlyOnFaulted); 224 214 } … … 228 218 .ContinueWith((t) => { 229 219 SlaveStatusInfo.IncrementExceptionOccured(); 230 clientCom.LogMessage(t.Exception.ToString());220 SlaveClientCom.Instance.LogMessage(t.Exception.ToString()); 231 221 }, TaskContinuationOptions.OnlyOnFaulted); 232 222 } … … 236 226 .ContinueWith((t) => { 237 227 SlaveStatusInfo.IncrementExceptionOccured(); 238 clientCom.LogMessage(t.Exception.ToString());228 SlaveClientCom.Instance.LogMessage(t.Exception.ToString()); 239 229 }, TaskContinuationOptions.OnlyOnFaulted); 240 230 } … … 350 340 if (task == null) throw new TaskNotFoundException(e.Value.TaskId); 351 341 task.ExecutionTime = e.Value.ExecutionTime; 352 TaskData taskData = e.Value .GetTaskData();342 TaskData taskData = e.Value2; 353 343 wcfService.UpdateTaskData(task, taskData, configManager.GetClientInfo().Id, TaskState.Paused); 354 344 } 355 345 catch (TaskNotFoundException ex) { 356 clientCom.LogMessage(ex.ToString());346 SlaveClientCom.Instance.LogMessage(ex.ToString()); 357 347 } 358 348 catch (Exception ex) { 359 clientCom.LogMessage(ex.ToString());349 SlaveClientCom.Instance.LogMessage(ex.ToString()); 360 350 } 361 351 } … … 368 358 if (task == null) throw new TaskNotFoundException(e.Value.TaskId); 369 359 task.ExecutionTime = e.Value.ExecutionTime; 370 TaskData taskData = e.Value .GetTaskData();360 TaskData taskData = e.Value2; 371 361 wcfService.UpdateTaskData(task, taskData, configManager.GetClientInfo().Id, TaskState.Finished); 372 362 } 373 363 catch (TaskNotFoundException ex) { 374 clientCom.LogMessage(ex.ToString());364 SlaveClientCom.Instance.LogMessage(ex.ToString()); 375 365 } 376 366 catch (Exception ex) { 377 clientCom.LogMessage(ex.ToString());367 SlaveClientCom.Instance.LogMessage(ex.ToString()); 378 368 } 379 369 } … … 395 385 wcfService.UpdateJobState(task.Id, TaskState.Failed, exception.ToString()); 396 386 } 397 clientCom.LogMessage(exception.Message);387 SlaveClientCom.Instance.LogMessage(exception.Message); 398 388 } 399 389 catch (TaskNotFoundException ex) { 400 390 SlaveStatusInfo.IncrementExceptionOccured(); 401 clientCom.LogMessage(ex.ToString());391 SlaveClientCom.Instance.LogMessage(ex.ToString()); 402 392 } 403 393 catch (Exception ex) { 404 394 SlaveStatusInfo.IncrementExceptionOccured(); 405 clientCom.LogMessage(ex.ToString());395 SlaveClientCom.Instance.LogMessage(ex.ToString()); 406 396 } 407 397 } … … 411 401 SlaveStatusInfo.IncrementExceptionOccured(); 412 402 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())); 414 404 wcfService.UpdateJobState(e.Value.TaskId, TaskState.Waiting, e.Value2.ToString()); 415 405 } … … 422 412 #region Log Events 423 413 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 { } 425 418 } 426 419 #endregion … … 430 423 /// </summary> 431 424 private void DoAbortAll() { 432 clientCom.LogMessage("Aborting all jobs.");425 SlaveClientCom.Instance.LogMessage("Aborting all jobs."); 433 426 foreach (Guid taskId in taskManager.TaskIds) { 434 427 AbortTaskAsync(taskId); … … 440 433 /// </summary> 441 434 private void DoPauseAll() { 442 clientCom.LogMessage("Pausing all jobs.");435 SlaveClientCom.Instance.LogMessage("Pausing all jobs."); 443 436 foreach (Guid taskId in taskManager.TaskIds) { 444 437 PauseTaskAsync(taskId); … … 450 443 /// </summary> 451 444 private void DoStopAll() { 452 clientCom.LogMessage("Stopping all jobs.");445 SlaveClientCom.Instance.LogMessage("Stopping all jobs."); 453 446 foreach (Guid taskId in taskManager.TaskIds) { 454 447 StopTaskAsync(taskId); … … 470 463 /// </summary> 471 464 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"); 474 467 heartbeatManager.StopHeartBeat(); 475 468 abortRequested = true; … … 477 470 DoAbortAll(); 478 471 479 clientCom.LogMessage("Logging out");472 SlaveClientCom.Instance.LogMessage("Logging out"); 480 473 WcfService.Instance.Disconnect(); 481 clientCom.Shutdown();474 SlaveClientCom.Instance.ClientCom.Shutdown(); 482 475 SlaveClientCom.Close(); 483 476 … … 493 486 /// </summary> 494 487 private void DoStartSlave() { 495 clientCom.LogMessage("Restart received");488 SlaveClientCom.Instance.LogMessage("Restart received"); 496 489 configManager.Asleep = false; 497 490 } … … 502 495 /// </summary> 503 496 private void Sleep() { 504 clientCom.LogMessage("Sleep received - not accepting any new jobs");497 SlaveClientCom.Instance.LogMessage("Sleep received - not accepting any new jobs"); 505 498 configManager.Asleep = true; 506 499 DoPauseAll();
Note: See TracChangeset
for help on using the changeset viewer.