Beispiel #1
0
        /// <summary>
        /// Handles fault
        /// </summary>
        /// <param name="ex"></param>
        /// <param name="context"></param>
        /// <returns>false agent has been stopped</returns>
        protected bool HandleFault(Exception ex, Threading.ExecutionContext context)
        {
            State = ThreadState.Stopped;
            if (ex is ThreadAbortException)
            {
                return(false);
            }

            LogExecutorError(ex);

            if (OnFault == FaultBehavior.RestartOnFault && !Cts.IsCancellationRequested)
            {
                try
                {
                    Start();
                }
                catch (Exception exc)
                {
                    Log.Error(ErrorCode.Runtime_Error_100027, "Unable to restart AsynchAgent", exc);
                    State = ThreadState.Stopped;
                }
            }

            return(State != ThreadState.Stopped);
        }
Beispiel #2
0
 public override bool ExceptionHandler(Exception ex, Threading.ExecutionContext context)
 {
     if (!agent.HandleFault(ex, context))
     {
         context.CancellationTokenSource.Cancel();
     }
     return(true);
 }
 public override void OnActionExecuting(Threading.ExecutionContext context)
 {
     Decrement();
 }
 protected T GetWorkItemState(Threading.ExecutionContext context)
 {
     return((T)context.WorkItem.State);
 }