示例#1
0
 public async ValueTask <IHealthCheckResult> RunCheckAsync(CachedHealthCheck healthCheck, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var scope = GetServiceScope())
     {
         return(await RunCheckAsync(scope.ServiceProvider, healthCheck, cancellationToken).ConfigureAwait(false));
     }
 }
        /// <summary>
        /// Registers a health check type that will later be resolved via dependency
        /// injection.
        /// </summary>
        public HealthCheckBuilder AddCheck <TCheck>(string checkName, TimeSpan cacheDuration) where TCheck : class, IHealthCheck
        {
            Guard.ArgumentNotNullOrEmpty(nameof(checkName), checkName);
            Guard.ArgumentValid(!_checksByName.ContainsKey(checkName), nameof(checkName), $"A check with name '{checkName}' has already been registered.");

            var namedCheck = CachedHealthCheck.FromType(checkName, cacheDuration, typeof(TCheck));

            _checksByName.Add(checkName, namedCheck);
            _currentGroup.ChecksInternal.Add(namedCheck);

            return(this);
        }
        public static ValueTask <IHealthCheckResult> RunAsync(this CachedHealthCheck check, IServiceProvider serviceProvider)
        {
            Guard.ArgumentNotNull(nameof(check), check);

            return(check.RunAsync(serviceProvider, CancellationToken.None));
        }
示例#4
0
        /// <summary>
        /// Uses the provided service provider and executes the provided check.
        /// </summary>
        public ValueTask <IHealthCheckResult> RunCheckAsync(IServiceProvider serviceProvider, CachedHealthCheck healthCheck, CancellationToken cancellationToken = default(CancellationToken))
        {
            Guard.ArgumentNotNull(nameof(serviceProvider), serviceProvider);
            Guard.ArgumentNotNull(nameof(healthCheck), healthCheck);

            return(healthCheck.RunAsync(serviceProvider, cancellationToken));
        }