Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/01/11 15:51:11 (13 years ago)
Author:
cneumuel
Message:

#1233

  • changed the workflow of aquireing a new job from server.
    • if a job is available for calculation, the slave receives the jobId already with the heartbeats. The job is then exclusively assigned to this slave.
  • extended the metainfo for a slave by OperatingSystem and CpuArchitecture
  • enhanced the way plugin-dependencies are discovered by using the types used by XmlGenerator. Now only mimimum amount of plugins are transferred.
  • selection of waiting jobs now consideres assigned slave-group
  • more unit tests for service
  • added unit tests for experiment manager
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/LifecycleManager.cs

    r5095 r5404  
    9494    /// if not -> set them offline and check if they where calculating a job
    9595    /// </summary>
    96     void timer_Tick(object sender, EventArgs e) {
     96    private void timer_Tick(object sender, EventArgs e) {
    9797      lock (locker) {
    9898        using (trans.OpenTransaction()) {
     
    146146
    147147        if (this.IsAllowedToSendJobs() && slave.IsAllowedToCalculate && heartbeat.FreeCores > 0) {
    148           var availableJobs = dao.GetWaitingJobs(slave);
     148          var availableJobs = dao.GetWaitingJobs(slave, 1);
    149149          if (availableJobs.Count() > 0) {
    150             actions.Add(new MessageContainer(MessageContainer.MessageType.AquireJob));
     150            var job = availableJobs.First();
     151            actions.Add(new MessageContainer(MessageContainer.MessageType.CalculateJob, job.Id));
     152            AssignJob(slave, job);
    151153          }
    152154        }
     
    164166      }
    165167      return actions;
     168    }
     169
     170    private void AssignJob(Slave slave, Job job) {
     171      job.SlaveId = slave.Id;
     172      job.JobState = JobState.Calculating; // Todo: Maybe use State = Transferring (?)
     173      job.DateCalculated = DateTime.Now; // Todo: use statelog instead
     174      dao.UpdateJob(job);
     175      dao.UpdateSlave(slave);
    166176    }
    167177
Note: See TracChangeset for help on using the changeset viewer.