protected virtual void PlanComplete(IPlanRuntimeContainer planContainer) { InProcPlanInfo fake = null; if (_plans.ContainsKey(planContainer.PlanInstanceId)) { _plans.TryRemove(planContainer.PlanInstanceId, out fake); } OnPlanCompleted(planContainer); }
/// <summary> /// Queues a new Task onto the TaskFactory /// </summary> /// <param name="planContainer"></param> /// <returns>Success/Fail for whether the Task is queued.</returns> public virtual bool StartPlan(IPlanRuntimeContainer planContainer) { if (!_isDrainstopped) { CancellationTokenSource cts = new CancellationTokenSource(); InProcPlanInfo info = new InProcPlanInfo() { PlanPod = planContainer, CancellationToken = cts }; _plans[planContainer.PlanInstanceId] = info; _tasks.Add(_tf.StartNew(() => { planContainer.Start(cts.Token, PlanComplete); }, cts.Token)); } return(!_isDrainstopped); }
/// <summary> /// Queues a new Task onto the TaskFactory /// </summary> /// <param name="planContainer"></param> /// <returns>Success/Fail for whether the Task is queued.</returns> public virtual bool StartPlan(IPlanRuntimeContainer planContainer) { if (!_isDrainstopped) { CancellationTokenSource cts = new CancellationTokenSource(); InProcPlanInfo info = new InProcPlanInfo() { PlanPod = planContainer, CancellationToken = cts }; _plans[planContainer.PlanInstanceId] = info; WindowsIdentity user = WindowsIdentity.GetCurrent(); _tasks.Add(_tf.StartNew(() => { SynapseServer.Logger.Debug($"Executing Plan [{planContainer.Plan.Name}] as User [{user.Name}]"); planContainer.Start(cts.Token, PlanComplete); } , cts.Token)); } return(!_isDrainstopped); }
protected virtual void PlanComplete(IPlanRuntimeContainer planContainer) { _plans.Remove(planContainer.PlanInstanceId); OnPlanCompleted(planContainer); }
public PlanCompletedEventArgs(IPlanRuntimeContainer planContainer) { PlanContainer = planContainer; TimeCompleted = DateTime.Now; }
protected void OnPlanCompleted(IPlanRuntimeContainer planContainer) { PlanCompleted?.Invoke(this, new PlanCompletedEventArgs(planContainer)); }
protected virtual void PlanComplete(IPlanRuntimeContainer planContainer) { //_plans.Remove( planContainer.PlanInstanceId ); SynapseServer.Logger.Debug($"Completed: {planContainer.PlanInstanceId}, {planContainer.Plan.Name}"); }