Changeset 6743 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.3/RefreshableJob.cs
- Timestamp:
- 09/12/11 18:04:25 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.3/RefreshableJob.cs
r6725 r6743 55 55 } 56 56 57 private ItemCollection<HiveTask> hive Jobs;58 public ItemCollection<HiveTask> Hive Jobs {59 get { return hive Jobs; }57 private ItemCollection<HiveTask> hiveTasks; 58 public ItemCollection<HiveTask> HiveTasks { 59 get { return hiveTasks; } 60 60 set { 61 if (hive Jobs != value) {62 if (hive Jobs != null) DeregisterHiveJobsEvents();63 hive Jobs = value;64 if (hive Jobs != null) RegisterHiveJobsEvents();61 if (hiveTasks != value) { 62 if (hiveTasks != null) DeregisterHiveJobsEvents(); 63 hiveTasks = value; 64 if (hiveTasks != null) RegisterHiveJobsEvents(); 65 65 OnHiveJobsChanged(); 66 66 } … … 100 100 } 101 101 if (RefreshAutomatically) { 102 if (this.Hive Jobs != null && this.HiveJobs.Count > 0 && (jobResultPoller == null || !jobResultPoller.IsPolling)) {102 if (this.HiveTasks != null && this.HiveTasks.Count > 0 && (jobResultPoller == null || !jobResultPoller.IsPolling)) { 103 103 StartResultPolling(); 104 104 } … … 130 130 isControllable = value; 131 131 OnIsControllableChanged(); 132 if (this.hive Jobs != null) {133 foreach (var hiveJob in this.hive Jobs) {132 if (this.hiveTasks != null) { 133 foreach (var hiveJob in this.hiveTasks) { 134 134 hiveJob.IsControllable = value; 135 135 } … … 186 186 187 187 public StateLogListList StateLogList { 188 get { return new StateLogListList(this.GetAllHive Jobs().Select(x => x.StateLog)); }188 get { return new StateLogListList(this.GetAllHiveTasks().Select(x => x.StateLog)); } 189 189 } 190 190 … … 196 196 this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(2, 2); 197 197 this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); 198 this.Hive Jobs = new ItemCollection<HiveTask>();198 this.HiveTasks = new ItemCollection<HiveTask>(); 199 199 } 200 200 public RefreshableJob(Job hiveExperiment) { … … 204 204 this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(2, 2); 205 205 this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); 206 this.Hive Jobs = new ItemCollection<HiveTask>();206 this.HiveTasks = new ItemCollection<HiveTask>(); 207 207 } 208 208 protected RefreshableJob(RefreshableJob original, Cloner cloner) { … … 214 214 this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(2, 2); 215 215 this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); 216 this.Hive Jobs = cloner.Clone(original.HiveJobs);216 this.HiveTasks = cloner.Clone(original.HiveTasks); 217 217 this.ExecutionTime = original.ExecutionTime; 218 218 this.ExecutionState = original.ExecutionState; … … 263 263 } 264 264 private void jobResultPoller_JobResultReceived(object sender, EventArgs<IEnumerable<LightweightTask>> e) { 265 foreach (LightweightTask lightweight Jobin e.Value) {266 HiveTask hive Job = GetHiveJobById(lightweightJob.Id);267 if (hive Job!= null) {265 foreach (LightweightTask lightweightTask in e.Value) { 266 HiveTask hiveTask = GetHiveJobById(lightweightTask.Id); 267 if (hiveTask != null) { 268 268 // lastJobDataUpdate equals DateTime.MinValue right after it was uploaded. When the first results are polled, this value is updated 269 if (hive Job.Task.State == TaskState.Offline && lightweightJob.State != TaskState.Finished && lightweightJob.State != TaskState.Failed && lightweightJob.State != TaskState.Aborted) {270 hive Job.Task.LastJobDataUpdate = lightweightJob.LastJobDataUpdate;269 if (hiveTask.Task.State == TaskState.Offline && lightweightTask.State != TaskState.Finished && lightweightTask.State != TaskState.Failed && lightweightTask.State != TaskState.Aborted) { 270 hiveTask.Task.LastTaskDataUpdate = lightweightTask.LastTaskDataUpdate; 271 271 } 272 272 273 hive Job.UpdateFromLightweightJob(lightweightJob);274 275 if (!hive Job.IsFinishedTaskDownloaded && !hiveJob.IsDownloading && hiveJob.Task.LastJobDataUpdate < lightweightJob.LastJobDataUpdate) {276 log.LogMessage(string.Format("Downloading task {0}", lightweight Job.Id));277 hive Job.IsDownloading = true;278 jobDownloader.Download Job(hiveJob.Task, (localJob, itemJob) => {273 hiveTask.UpdateFromLightweightJob(lightweightTask); 274 275 if (!hiveTask.IsFinishedTaskDownloaded && !hiveTask.IsDownloading && hiveTask.Task.LastTaskDataUpdate < lightweightTask.LastTaskDataUpdate) { 276 log.LogMessage(string.Format("Downloading task {0}", lightweightTask.Id)); 277 hiveTask.IsDownloading = true; 278 jobDownloader.DownloadTask(hiveTask.Task, (localJob, itemJob) => { 279 279 log.LogMessage(string.Format("Finished downloading task {0}", localJob.Id)); 280 HiveTask localHive Job= GetHiveJobById(localJob.Id);280 HiveTask localHiveTask = GetHiveJobById(localJob.Id); 281 281 282 282 if (itemJob == null) { 283 localHive Job.IsDownloading = false;283 localHiveTask.IsDownloading = false; 284 284 } 285 285 … … 290 290 291 291 if (localJob.State == TaskState.Paused) { 292 localHive Job.ItemTask = itemJob;292 localHiveTask.ItemTask = itemJob; 293 293 } else { 294 294 if (localJob.ParentTaskId.HasValue) { 295 HiveTask parentHive Job= GetHiveJobById(localJob.ParentTaskId.Value);296 parentHive Job.IntegrateChild(itemJob, localJob.Id);295 HiveTask parentHiveTask = GetHiveJobById(localJob.ParentTaskId.Value); 296 parentHiveTask.IntegrateChild(itemJob, localJob.Id); 297 297 } else { 298 localHive Job.ItemTask = itemJob;298 localHiveTask.ItemTask = itemJob; 299 299 } 300 300 } 301 localHive Job.IsDownloading = false;302 localHive Job.Task.LastJobDataUpdate = localJob.LastJobDataUpdate;301 localHiveTask.IsDownloading = false; 302 localHiveTask.Task.LastTaskDataUpdate = localJob.LastTaskDataUpdate; 303 303 } 304 304 }); … … 317 317 318 318 public HiveTask GetHiveJobById(Guid jobId) { 319 foreach (HiveTask job in this.Hive Jobs) {319 foreach (HiveTask job in this.HiveTasks) { 320 320 var hj = job.GetHiveTaskByTaskId(jobId); 321 321 if (hj != null) … … 325 325 } 326 326 private void UpdateStatistics() { 327 var jobs = this.GetAllHive Jobs();327 var jobs = this.GetAllHiveTasks(); 328 328 job.JobCount = jobs.Count(); 329 329 job.CalculatingCount = jobs.Count(j => j.Task.State == TaskState.Calculating); … … 333 333 334 334 public bool AllJobsFinished() { 335 return this.GetAllHive Jobs().All(j => (j.Task.State == TaskState.Finished335 return this.GetAllHiveTasks().All(j => (j.Task.State == TaskState.Finished 336 336 || j.Task.State == TaskState.Aborted 337 337 || j.Task.State == TaskState.Failed) … … 346 346 } 347 347 public void UpdateTotalExecutionTime() { 348 this.ExecutionTime = TimeSpan.FromMilliseconds(this.GetAllHive Jobs().Sum(x => x.Task.ExecutionTime.TotalMilliseconds));348 this.ExecutionTime = TimeSpan.FromMilliseconds(this.GetAllHiveTasks().Sum(x => x.Task.ExecutionTime.TotalMilliseconds)); 349 349 } 350 350 #endregion … … 468 468 #endregion 469 469 470 #region Hive Jobs Events470 #region HiveTasks Events 471 471 private void RegisterHiveJobsEvents() { 472 this.hive Jobs.ItemsAdded += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded);473 this.hive Jobs.ItemsRemoved += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved);474 this.hive Jobs.CollectionReset += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset);472 this.hiveTasks.ItemsAdded += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded); 473 this.hiveTasks.ItemsRemoved += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved); 474 this.hiveTasks.CollectionReset += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset); 475 475 } 476 476 477 477 private void DeregisterHiveJobsEvents() { 478 this.hive Jobs.ItemsAdded -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded);479 this.hive Jobs.ItemsRemoved -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved);480 this.hive Jobs.CollectionReset -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset);478 this.hiveTasks.ItemsAdded -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded); 479 this.hiveTasks.ItemsRemoved -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved); 480 this.hiveTasks.CollectionReset -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset); 481 481 } 482 482 … … 514 514 DeregisterResultPollingEvents(); 515 515 } 516 if (this.Hive Jobs != null && this.HiveJobs.Count > 0 && this.GetAllHiveJobs().All(x => x.Task.Id != Guid.Empty)) {516 if (this.HiveTasks != null && this.HiveTasks.Count > 0 && this.GetAllHiveTasks().All(x => x.Task.Id != Guid.Empty)) { 517 517 if (this.RefreshAutomatically) 518 518 StartResultPolling(); … … 581 581 582 582 public bool IsFinished() { 583 return Hive Jobs != null584 && Hive Jobs.All(x => x.Task.DateFinished.HasValue && x.Task.DateCreated.HasValue);585 } 586 587 public IEnumerable<HiveTask> GetAllHive Jobs() {588 if (hive Jobs == null) return Enumerable.Empty<HiveTask>();589 590 var jobs = new List<HiveTask>();591 foreach (HiveTask job in HiveJobs) {592 jobs.AddRange(job.GetAllHiveTasks());593 } 594 return jobs;583 return HiveTasks != null 584 && HiveTasks.All(x => x.Task.DateFinished.HasValue && x.Task.DateCreated.HasValue); 585 } 586 587 public IEnumerable<HiveTask> GetAllHiveTasks() { 588 if (hiveTasks == null) return Enumerable.Empty<HiveTask>(); 589 590 var tasks = new List<HiveTask>(); 591 foreach (HiveTask task in HiveTasks) { 592 tasks.AddRange(task.GetAllHiveTasks()); 593 } 594 return tasks; 595 595 } 596 596
Note: See TracChangeset
for help on using the changeset viewer.