Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/22/11 15:54:58 (13 years ago)
Author:
cneumuel
Message:

#1233

  • implemented correct downloading of paused jobs. its now also possible to change parameters and resume a algorithm
  • removed Prepare() calls in ExperimentManager and in slave, as it prevents corrent resuming of paused jobs
  • made events in ItemTreeView be invoked in the correct thread
  • reduced log output in ExperimentManager
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobClient.cs

    r5786 r5793  
    7070    public OptimizerJob OptimizerJob {
    7171      get { return optimizerJob; }
    72       private set {
     72      internal set {
    7373        if (optimizerJob != null && syncJobsWithOptimizers) {
    7474          this.childHiveJobs.Clear();
     
    289289      syncJobsWithOptimizers = false;
    290290      if (this.OptimizerJob != null && hiveJob.OptimizerJob != null) {
     291        // if job is in state Paused, it has to preserve its ResultCollection, which is cleared when a optimizer is added to an experiment
     292        OptimizerJob optimizerJobClone = null;
     293        if (hiveJob.Job.State == JobState.Paused) {
     294          optimizerJobClone = (OptimizerJob)hiveJob.OptimizerJob.Clone();
     295        }
     296
    291297        if (this.OptimizerJob.Optimizer is Optimization.Experiment) {
    292298          if (!this.OptimizerJob.OptimizerAsExperiment.Optimizers.Contains(hiveJob.OptimizerJob.Optimizer)) {
     
    295301        } else if (this.OptimizerJob.Optimizer is Optimization.BatchRun) {
    296302          UpdateOptimizerInBatchRun(this.OptimizerJob.OptimizerAsBatchRun, hiveJob.OptimizerJob);
     303        }
     304
     305        if (hiveJob.Job.State == JobState.Paused) {
     306          hiveJob.OptimizerJob = optimizerJobClone;
    297307        }
    298308      }
     
    524534    private void OnOptimizerJobChanged() {
    525535      OptimizerJob_ComputeInParallelChanged(this, EventArgs.Empty);
    526       var handler = JobChanged;
     536      var handler = OptimizerJobChanged;
    527537      if (handler != null) handler(this, EventArgs.Empty);
    528538    }
     
    649659
    650660    public void Restart() {
    651       ServiceLocator.Instance.CallHiveService(s => s.RestartJob(this.job.Id));
     661      ServiceLocator.Instance.CallHiveService(service => {
     662        JobData jobData = new JobData();
     663        jobData.JobId = this.job.Id;
     664        jobData.Data = PersistenceUtil.Serialize(this.optimizerJob);
     665        service.UpdateJobData(this.Job, jobData);
     666        service.RestartJob(this.job.Id);
     667        Job job = service.GetJob(this.job.Id);
     668        this.job.LastJobDataUpdate = job.LastJobDataUpdate;
     669      });
    652670    }
    653671  }
Note: See TracChangeset for help on using the changeset viewer.