internal RequestCollapser(HystrixCollapser <BatchReturnType, RequestResponseType, RequestArgumentType> commandCollapser, IHystrixCollapserOptions properties, ICollapserTimer timer, HystrixConcurrencyStrategy concurrencyStrategy) { this.commandCollapser = commandCollapser; // the command with implementation of abstract methods we need this.concurrencyStrategy = concurrencyStrategy; this.properties = properties; this.timer = timer; batch.Value = new RequestBatch <BatchReturnType, RequestResponseType, RequestArgumentType>(properties, commandCollapser, properties.MaxRequestsInBatch); }
public RequestBatch(IHystrixCollapserOptions properties, HystrixCollapser <BatchReturnType, RequestResponseType, RequestArgumentType> commandCollapser, int maxBatchSize) { this.properties = properties; this.commandCollapser = commandCollapser; this.maxBatchSize = maxBatchSize; }
private RequestCollapser <BatchReturnType, ResponseType, RequestArgumentType> GetCollapserForGlobalScope <BatchReturnType, ResponseType, RequestArgumentType>(HystrixCollapser <BatchReturnType, ResponseType, RequestArgumentType> commandCollapser) { var result = globalScopedCollapsers.GetOrAddEx(CollapserKey.Name, (k) => new RequestCollapser <BatchReturnType, ResponseType, RequestArgumentType>(commandCollapser, Properties, timer, concurrencyStrategy)); return((RequestCollapser <BatchReturnType, ResponseType, RequestArgumentType>)result); }
public RequestCollapser <BatchReturnType, ResponseType, RequestArgumentType> GetRequestCollapser <BatchReturnType, ResponseType, RequestArgumentType>(HystrixCollapser <BatchReturnType, ResponseType, RequestArgumentType> commandCollapser) { if (Scope == RequestCollapserScope.REQUEST) { return(GetCollapserForUserRequest(commandCollapser)); } else if (Scope == RequestCollapserScope.GLOBAL) { return(GetCollapserForGlobalScope(commandCollapser)); } else { // logger.warn("Invalid Scope: {} Defaulting to REQUEST scope.", getScope()); return(GetCollapserForUserRequest(commandCollapser)); } }
public RequestCollapserRequestVariable(HystrixCollapser <BatchReturnType, ResponseType, RequestArgumentType> commandCollapser, IHystrixCollapserOptions properties, ICollapserTimer timer, HystrixConcurrencyStrategy concurrencyStrategy) : base(() => new RequestCollapser <BatchReturnType, ResponseType, RequestArgumentType>(commandCollapser, properties, timer, concurrencyStrategy), (collapser) => collapser.Shutdown()) { }
private RequestCollapserRequestVariable <BatchReturnType, ResponseType, RequestArgumentType> GetRequestVariableForCommand <BatchReturnType, ResponseType, RequestArgumentType>(HystrixCollapser <BatchReturnType, ResponseType, RequestArgumentType> commandCollapser) { var result = requestScopedCollapsers.GetOrAddEx(commandCollapser.CollapserKey.Name, (k) => new RequestCollapserRequestVariable <BatchReturnType, ResponseType, RequestArgumentType>(commandCollapser, Properties, timer, concurrencyStrategy)); return((RequestCollapserRequestVariable <BatchReturnType, ResponseType, RequestArgumentType>)result); }
private RequestCollapser <BatchReturnType, ResponseType, RequestArgumentType> GetCollapserForUserRequest <BatchReturnType, ResponseType, RequestArgumentType>(HystrixCollapser <BatchReturnType, ResponseType, RequestArgumentType> commandCollapser) { return(GetRequestVariableForCommand(commandCollapser).Value); }