Changeset 6371 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs
- Timestamp:
- 06/06/11 18:33:03 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs
r6357 r6371 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 0Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 28 28 using HeuristicLab.Common; 29 29 using HeuristicLab.Core; 30 using HeuristicLab.Hive;31 30 32 31 … … 34 33 /// <summary> 35 34 /// The core component of the Hive Slave. 36 /// Handles commands sent from the Hive Server .35 /// Handles commands sent from the Hive Server and does all webservice calls for jobs. 37 36 /// </summary> 38 37 public class Core : MarshalByRefObject { … … 41 40 get { return heartbeatManager; } 42 41 } 42 43 public EventLog ServiceEventLog { get; set; } 43 44 44 45 private Semaphore waitShutdownSem = new Semaphore(0, 1); … … 51 52 private PluginManager pluginManager; 52 53 53 public EventLog ServiceEventLog { get; set; }54 55 54 public Core() { 56 55 var log = new ThreadSafeLog(new Log()); … … 66 65 67 66 /// <summary> 68 /// Main Method for the client67 /// Main method for the client 69 68 /// </summary> 70 69 public void Start() { … … 72 71 73 72 try { 74 //manager.Core = this;75 76 73 //start the client communication service (pipe between slave and slave gui) 77 74 slaveComm = new ServiceHost(typeof(SlaveCommunicationService)); … … 321 318 this.jobManager.ExceptionOccured += new EventHandler<EventArgs<SlaveJob, Exception>>(jobManager_ExceptionOccured); 322 319 this.jobManager.JobAborted += new EventHandler<EventArgs<SlaveJob>>(jobManager_JobAborted); 323 this.jobManager.NewChildJob += new EventHandler<EventArgs<SlaveJob, IJob>>(jobManager_NewChildJob);324 this.jobManager.WaitForChildJobs += new EventHandler<EventArgs<SlaveJob, JobData>>(jobManager_WaitForChildJobs);325 this.jobManager.DeleteChildJobs += new EventHandler<EventArgs<SlaveJob>>(jobManager_DeleteChildJobs);326 320 } 327 321 … … 404 398 SlaveStatusInfo.DecrementUsedCores(e.Value.CoresNeeded); 405 399 } 406 407 private void jobManager_NewChildJob(object sender, EventArgs<SlaveJob, IJob> e) {408 var job = new Job() { CoresNeeded = 1, MemoryNeeded = 0 };409 WcfService.Instance.AddChildJob(e.Value.JobId, job, e.Value2);410 }411 412 private void jobManager_WaitForChildJobs(object sender, EventArgs<SlaveJob, JobData> e) {413 try {414 SlaveStatusInfo.DecrementUsedCores(e.Value.CoresNeeded);415 heartbeatManager.AwakeHeartBeatThread();416 Job job = wcfService.GetJob(e.Value.JobId);417 if (job == null) throw new JobNotFoundException(e.Value.JobId);418 job.ExecutionTime = e.Value.ExecutionTime;419 job.IsParentJob = true;420 job.FinishWhenChildJobsFinished = false;421 JobData jobData = e.Value.GetJobData();422 wcfService.UpdateJobData(job, jobData, configManager.GetClientInfo().Id, JobState.Waiting);423 }424 catch (JobNotFoundException ex) {425 clientCom.LogMessage(ex.ToString());426 }427 catch (Exception ex) {428 clientCom.LogMessage(ex.ToString());429 }430 }431 432 private void jobManager_DeleteChildJobs(object sender, EventArgs<SlaveJob> e) {433 try {434 WcfService.Instance.DeleteChildJobs(e.Value.JobId);435 }436 catch (Exception ex) {437 clientCom.LogMessage(ex.ToString());438 }439 }440 400 #endregion 441 401 … … 491 451 /// </summary> 492 452 private void ShutdownCore() { 493 clientCom.LogMessage("Shutdown Signal received");453 clientCom.LogMessage("Shutdown signal received"); 494 454 clientCom.LogMessage("Stopping heartbeat"); 495 455 heartbeatManager.StopHeartBeat(); 496 456 abortRequested = true; 457 458 DoAbortAll(); 459 497 460 clientCom.LogMessage("Logging out"); 498 499 DoAbortAll();500 501 461 WcfService.Instance.Disconnect(); 502 462 clientCom.Shutdown(); … … 514 474 clientCom.LogMessage("Restart received"); 515 475 configManager.Asleep = false; 516 clientCom.LogMessage("Restart done");517 476 } 518 477 … … 524 483 clientCom.LogMessage("Sleep received - not accepting any new jobs"); 525 484 configManager.Asleep = true; 526 DoPauseAll(); 485 DoPauseAll(); 527 486 } 528 487 #endregion
Note: See TracChangeset
for help on using the changeset viewer.