private void OnExecute(IActionResultHandler resultHandler) { try { if (FilterExecuting()) { try { Result = Handler.Invoke(Controller, HttpContext, ActionHandlerFactory, Parameters); } catch (Exception error) { Exception = error; } finally { FilterExecuted(); } if (Exception != null) { resultHandler.Error(Exception); } else { resultHandler.Success(Result); } } } catch (Exception e_) { resultHandler.Error(e_); } }
private async void OnAsyncExecute(IActionResultHandler resultHandler) { HttpContext.Server.RequestExecting(); try { if (FilterExecuting()) { try { var task = (Task)Handler.Invoke(Controller, HttpContext, ActionHandlerFactory, Parameters); await task; if (Handler.PropertyHandler != null) { Result = Handler.PropertyHandler.Get(task); } else { Result = null; } } catch (Exception error) { Exception = error; } finally { FilterExecuted(); } } if (Exception != null) { Handler.IncrementError(); resultHandler.Error(Exception); } else { resultHandler.Success(Result); } } catch (Exception e_) { Handler.IncrementError(); resultHandler.Error(e_); } finally { HttpContext.Server.RequestExecuted(); } }
internal void Execute(IActionResultHandler resultHandler) { if (Handler.ValidateRPS()) { Handler.IncrementRequest(); if (Handler.ThreadQueue == null || Handler.ThreadQueue.Type == ThreadQueueType.None) { if (Handler.Async) { OnAsyncExecute(resultHandler); } else { OnExecute(resultHandler); } } else { ActionTask actionTask = new ActionTask(this, resultHandler); var queue = Handler.ThreadQueue.GetQueue(this.HttpContext); this.HttpContext.Queue = queue; queue.Enqueue(actionTask); } } else { Handler.IncrementError(); resultHandler.Error(new Exception($"{Handler.SourceUrl} process error,out of max rps!"), EventArgs.LogType.Warring, 509); } }
internal void Execute(IActionResultHandler resultHandler) { if (Handler.ValidateRPS()) { Handler.IncrementRequest(); if (Handler.Async) { OnAsyncExecute(resultHandler); } else { OnExecute(resultHandler); } } else { Handler.IncrementError(); resultHandler.Error(new Exception($"{Handler.SourceUrl} process error,out of max rps!"), EventArgs.LogType.Warring, 509); } }