Exemplo n.º 1
0
        private Task <CalibrateResult> CalibrateAsync(Context context, IQuotaRule rule)
        {
            var operationContext = new OperationContext(context, _token);

            return(operationContext.PerformOperationAsync(
                       Tracer,
                       async() =>
            {
                if (!rule.CanBeCalibrated)
                {
                    return CalibrateResult.CannotCalibrate;
                }

                if (ShouldAbortOperation(context, "Calibrate", out var reason))
                {
                    return new CalibrateResult(reason);
                }

                return await rule.CalibrateAsync();
            }));
Exemplo n.º 2
0
        private Task CalibrateAsync(Context context, IQuotaRule rule)
        {
            var operationContext = new OperationContext(context, _token);

            return(CalibrateCall.RunAsync(_tracer, operationContext, async() =>
            {
                if (!rule.CanBeCalibrated)
                {
                    return CalibrateResult.CannotCalibrate;
                }

                if (_token.IsCancellationRequested)
                {
                    var reason = "Calibrate exiting due to shutdown.";
                    _tracer.Debug(context, reason);
                    return new CalibrateResult(reason);
                }

                var result = await rule.CalibrateAsync();
                _tracer.Debug(context, !result.Succeeded ? result.ErrorMessage : $"New hard limit=[{result.Size}]");

                return result;
            }));
        }
Exemplo n.º 3
0
 public Task <CalibrateResult> CalibrateAsync()
 {
     return(Rule.CalibrateAsync());
 }