public virtual async Task InitializeAsync(IVostokHostingEnvironment environment) { var log = environment.Log.ForContext <VostokAspNetCoreApplication>(); var builder = new VostokAspNetCoreApplicationBuilder <TStartup>(environment, this, disposables); builder.SetupPingApi( settings => { settings.CommitHashProvider = GetCommitHash; settings.InitializationCheck = () => initialized; if (environment.HostExtensions.TryGet <IVostokApplicationDiagnostics>(out var diagnostics)) { settings.HealthCheck = () => diagnostics.HealthTracker.CurrentStatus == HealthStatus.Healthy; } }); Setup(builder, environment); disposables.Add(manager = new HostManager(builder.BuildHost(), log)); await manager.StartHostAsync(environment.ShutdownToken); await WarmupAsync(environment, manager.Services); await WarmupMiddlewares(environment); initialized.TrySetTrue(); }
public async Task InitializeAsync(IVostokHostingEnvironment environment) { var log = environment.Log.ForContext <VostokAspNetCoreApplication>(); var builder = new VostokAspNetCoreApplicationBuilder <TStartup>(environment, disposables); builder.SetupPingApi( settings => { settings.InitializationCheck = () => initialized; settings.CommitHashProvider = GetCommitHash; }); Setup(builder, environment); disposables.Add(manager = new HostManager(builder.BuildHost(), log)); await manager.StartHostAsync(environment.ShutdownToken); await WarmupAsync(environment, manager.Services); initialized.TrySetTrue(); }