Changeset 779 for trunk/sources/HeuristicLab.Hive.Client.Core
- Timestamp:
- 11/19/08 16:08:44 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs
r770 r779 58 58 } 59 59 60 public void Start() { 61 Logging.getInstance().Info(this.ToString(), "Info Message"); 62 //Logging.getInstance().Error(this.ToString(), "Error Message"); 63 //Logging.getInstance().Error(this.ToString(), "Exception Message", new Exception("Exception")); 64 60 public void Start() { 65 61 Heartbeat beat = new Heartbeat(); 66 62 beat.Interval = 5000; … … 68 64 69 65 MessageQueue queue = MessageQueue.GetInstance(); 70 71 TestJob job = new TestJob(); 72 73 AppDomain appDomain = CreateNewAppDomain(false); 74 75 //This is a HACK. remove static directory ASAP 76 //Executor engine = (Executor)appDomain.CreateInstanceFromAndUnwrap(@"C:\Program Files\HeuristicLab 3.0\plugins\HeuristicLab.Hive.Client.ExecutionEngine-3.2.dll", "HeuristicLab.Hive.Client.ExecutionEngine.Executor"); 77 78 Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName); 79 //ExecutionEngine.Executor engine = new ExecutionEngine.Executor(); 80 engine.Job = job; 81 engine.JobId = 1L; 82 engine.Queue = queue; 83 engine.Start(); 84 engines.Add(engine.JobId, engine); 85 86 Thread.Sleep(15000); 87 engine.RequestSnapshot(); 66 queue.AddMessage(MessageContainer.MessageType.FetchJob); 88 67 while (true) { 89 68 MessageContainer container = queue.GetMessage(); 69 Debug.WriteLine("Main loop received this message: " + container.Message.ToString()); 90 70 Logging.getInstance().Info(this.ToString(), container.Message.ToString()); 91 71 DetermineAction(container); 92 93 94 72 } 95 }96 97 Assembly appDomain_TypeResolve(object sender, ResolveEventArgs args) {98 throw new NotImplementedException();99 73 } 100 74 … … 116 90 117 91 private void DetermineAction(MessageContainer container) { 118 if(container.Message == MessageContainer.MessageType.AbortJob) 119 engines[container.JobId].Abort(); 120 else if (container.Message == MessageContainer.MessageType.JobAborted) 121 //kill appdomain 122 Console.WriteLine("tmp"); 123 else if (container.Message == MessageContainer.MessageType.RequestSnapshot) 124 engines[container.JobId].RequestSnapshot(); 125 else if (container.Message == MessageContainer.MessageType.SnapshotReady) 126 // must be async! 127 engines[container.JobId].GetSnapshot(); 128 } 92 switch (container.Message) { 93 case MessageContainer.MessageType.AbortJob: 94 engines[container.JobId].Abort(); 95 break; 96 case MessageContainer.MessageType.JobAborted: 97 Debug.WriteLine("-- Job Aborted Message received"); 98 break; 99 100 101 case MessageContainer.MessageType.RequestSnapshot: 102 engines[container.JobId].RequestSnapshot(); 103 break; 104 case MessageContainer.MessageType.SnapshotReady: 105 engines[container.JobId].GetSnapshot(); 106 break; 107 108 109 case MessageContainer.MessageType.FetchJob: 110 IJob job = CreateNewJob(); 111 112 AppDomain appDomain = CreateNewAppDomain(false); 113 appDomains.Add(job.JobId, appDomain); 114 115 Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName); 116 engine.Job = job; 117 engine.JobId = job.JobId; 118 engine.Queue = MessageQueue.GetInstance(); 119 engine.Start(); 120 engines.Add(engine.JobId, engine); 121 break; 122 123 case MessageContainer.MessageType.FinishedJob: 124 engines[container.JobId].GetFinishedJob(); 125 AppDomain.Unload(appDomains[container.JobId]); 126 appDomains.Remove(container.JobId); 127 engines.Remove(container.JobId); 128 break; 129 130 } 131 } 132 133 /// <summary> 134 /// Simulator Class for new Jobs. will be replaced with fetching Jobs from the Interface 135 /// </summary> 136 /// <returns></returns> 137 private IJob CreateNewJob() { 138 Random random = new Random(); 139 IJob job = new TestJob(); 140 job.JobId = random.Next(); 141 return job; 142 } 129 143 } 130 144 }
Note: See TracChangeset
for help on using the changeset viewer.