public void Restart() { HiveServiceLocator.Instance.CallHiveService(service => { TaskData taskData = new TaskData(); taskData.TaskId = this.task.Id; taskData.Data = PersistenceUtil.Serialize(this.itemTask); service.UpdateTaskData(this.Task, taskData); service.RestartTask(this.task.Id); Task task = service.GetTask(this.task.Id); this.task.LastTaskDataUpdate = task.LastTaskDataUpdate; }); }
/// <summary> /// Creates a TaskData object containing the Task and the IJob-Object as byte[] /// </summary> /// <param name="withoutChildOptimizers"> /// if true the Child-Optimizers will not be serialized (if the task contains an Experiment) /// </param> public virtual TaskData GetAsTaskData(bool withoutChildOptimizers, out List <IPluginDescription> plugins) { if (ItemTask == null) { plugins = new List <IPluginDescription>(); return(null); } IEnumerable <Type> usedTypes; byte[] taskByteArray = PersistenceUtil.Serialize(ItemTask, out usedTypes); TaskData taskData = new TaskData() { TaskId = task.Id, Data = taskByteArray }; plugins = PluginUtil.GetPluginsForTask(usedTypes, ItemTask); return(taskData); }
public override TaskData GetAsTaskData(bool withoutChildOptimizers, out List <IPluginDescription> plugins) { if (ItemTask == null) { plugins = new List <IPluginDescription>(); return(null); } TaskData jobData = new TaskData(); IEnumerable <Type> usedTypes; // clone operation and remove unnecessary scopes; don't do this earlier to avoid memory problems ((IAtomicOperation)ItemTask.InitialOperation).Scope.Parent = parentScopeClone; ItemTask.InitialOperation = (IOperation)ItemTask.InitialOperation.Clone(); ((IAtomicOperation)ItemTask.InitialOperation).Scope.ClearParentScopes(); jobData.Data = PersistenceUtil.Serialize(ItemTask, out usedTypes); plugins = PluginUtil.GetPluginsForTask(usedTypes, ItemTask); return(jobData); }
/// <summary> /// Creates a TaskData object containing the Task and the IJob-Object as byte[] /// </summary> /// <param name="withoutChildOptimizers"> /// if true the Child-Optimizers will not be serialized (if the task contains an Experiment) /// </param> public override TaskData GetAsTaskData(bool withoutChildOptimizers, out List <IPluginDescription> plugins) { if (ItemTask == null) { plugins = new List <IPluginDescription>(); return(null); } IEnumerable <Type> usedTypes; byte[] jobByteArray; if (withoutChildOptimizers && ItemTask.Item is Optimization.Experiment) { OptimizerTask clonedJob = (OptimizerTask)ItemTask.Clone(); // use a cloned task, so that the childHiveJob don't get confused clonedJob.OptimizerAsExperiment.Optimizers.Clear(); jobByteArray = PersistenceUtil.Serialize(clonedJob, out usedTypes); } else if (withoutChildOptimizers && ItemTask.Item is Optimization.BatchRun) { OptimizerTask clonedJob = (OptimizerTask)ItemTask.Clone(); clonedJob.OptimizerAsBatchRun.Optimizer = null; jobByteArray = PersistenceUtil.Serialize(clonedJob, out usedTypes); } else if (ItemTask.Item is IAlgorithm) { ((IAlgorithm)ItemTask.Item).StoreAlgorithmInEachRun = false; // avoid storing the algorithm in runs to reduce size jobByteArray = PersistenceUtil.Serialize(ItemTask, out usedTypes); } else { jobByteArray = PersistenceUtil.Serialize(ItemTask, out usedTypes); } TaskData jobData = new TaskData() { TaskId = task.Id, Data = jobByteArray }; plugins = PluginUtil.GetPluginsForTask(usedTypes, ItemTask); return(jobData); }