Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/16/11 18:05:56 (13 years ago)
Author:
ascheibe
Message:

#1233 worked on slave and slave service installer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs

    r5718 r5721  
    2626using System.ServiceModel;
    2727using System.Threading;
     28using System.Threading.Tasks;
    2829using HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts;
    2930using HeuristicLab.Common;
     
    133134    private void DetermineAction(MessageContainer container) {
    134135      ClientCom.LogMessage("Message: " + container.Message.ToString() + " for job: " + container.JobId);
    135       //TODO: find a better solution
     136
    136137      if (container is ExecutorMessageContainer<Guid>) {
    137138        ExecutorMessageContainer<Guid> c = (ExecutorMessageContainer<Guid>)container;
     
    140141        switch (container.Message) {
    141142          case MessageContainer.MessageType.CalculateJob:
    142             Job job = wcfService.GetJob(container.JobId);
    143             JobData jobData = wcfService.GetJobData(job.Id);
    144             job = wcfService.UpdateJobState(job.Id, JobState.Calculating, null);
    145             StartJobInAppDomain(job, jobData);
     143            Task.Factory.StartNew(() => {
     144              Job job = wcfService.GetJob(container.JobId);
     145              lock (engines) {
     146                if (!jobs.ContainsKey(job.Id)) {
     147                  jobs.Add(job.Id, job);
     148                }
     149              }
     150              JobData jobData = wcfService.GetJobData(job.Id);
     151              job = wcfService.UpdateJobState(job.Id, JobState.Calculating, null);
     152              StartJobInAppDomain(job, jobData);
     153            });
    146154            break;
    147155          case MessageContainer.MessageType.ShutdownSlave:
     
    420428          appDomain.UnhandledException += new UnhandledExceptionEventHandler(AppDomain_UnhandledException);
    421429          lock (engines) {
    422             if (!jobs.ContainsKey(myJob.Id)) {
    423               jobs.Add(myJob.Id, myJob);
    424               appDomains.Add(myJob.Id, appDomain);
    425               ClientCom.LogMessage("Creating AppDomain");
    426               Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
    427               ClientCom.LogMessage("Created AppDomain");
    428               engine.JobId = myJob.Id;
    429               engine.Core = this;
    430               ClientCom.LogMessage("Starting Engine for job " + myJob.Id);
    431               engines.Add(myJob.Id, engine);
    432               engine.Start(jobData.Data);
    433               SlaveStatusInfo.JobsFetched++;
    434               ClientCom.LogMessage("Increment FetchedJobs to:" + SlaveStatusInfo.JobsFetched);
    435             }
     430            appDomains.Add(myJob.Id, appDomain);
     431            ClientCom.LogMessage("Creating AppDomain");
     432            Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
     433            ClientCom.LogMessage("Created AppDomain");
     434            engine.JobId = myJob.Id;
     435            engine.Core = this;
     436            ClientCom.LogMessage("Starting Engine for job " + myJob.Id);
     437            engines.Add(myJob.Id, engine);
     438            engine.Start(jobData.Data);
     439            SlaveStatusInfo.JobsFetched++;
     440            ClientCom.LogMessage("Increment FetchedJobs to:" + SlaveStatusInfo.JobsFetched);
    436441          }
    437           heartbeatManager.AwakeHeartBeatThread();
    438442        }
    439443        catch (Exception exception) {
     
    443447        }
    444448      }
     449      heartbeatManager.AwakeHeartBeatThread();
    445450    }
    446451
Note: See TracChangeset for help on using the changeset viewer.