From 5033d895ea7cc980cf93a4691cf34158e6db5521 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 14 Nov 2024 17:53:20 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=90=AF=E5=8A=A8=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE,=E9=81=BF=E5=85=8Ddblock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HealthCheckBackgroundService.cs | 26 ++---------------- Src/Dlhis.Middle/Program.cs | 27 ++++++++++++++++++- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs b/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs index 2c2724d4..256b3006 100644 --- a/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs +++ b/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs @@ -7,39 +7,17 @@ namespace Dlhis.Middle.BackgroundServices; public class HealthCheckBackgroundService : BackgroundService { private readonly IHealthCheckService _healthCheckService; - private readonly IServiceProvider _serviceProvider; - private bool _init; - public HealthCheckBackgroundService(IHealthCheckService healthCheckService, IServiceProvider serviceProvider) + public HealthCheckBackgroundService(IHealthCheckService healthCheckService) { _healthCheckService = healthCheckService; - _serviceProvider = serviceProvider; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { - if (await _healthCheckService.DoHealthCheckAsync()) - { - if (!_init) - { - using var scope = _serviceProvider.CreateScope(); - - var db = scope.ServiceProvider.GetService(); - - db.Client.DbMaintenance.CreateDatabase(); - db.Client.CodeFirst.InitTables(); - db.Client.CodeFirst.InitTables(); - db.Client.CodeFirst.InitTables(); - - var factories = scope.ServiceProvider.GetService().GetFactories(); - var ds = scope.ServiceProvider.GetService(); - await ds.InitAsync(factories); - } - } - - _init = true; + await _healthCheckService.DoHealthCheckAsync(); } } } \ No newline at end of file diff --git a/Src/Dlhis.Middle/Program.cs b/Src/Dlhis.Middle/Program.cs index f139b0fd..b07548a2 100644 --- a/Src/Dlhis.Middle/Program.cs +++ b/Src/Dlhis.Middle/Program.cs @@ -1,5 +1,8 @@ using Dlhis.Middle.BackgroundServices; +using Dlhis.Middle.Entities; +using Dlhis.Middle.Services; using Kurisu.AspNetCore; +using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.Startup; using Microsoft.IdentityModel.Logging; @@ -23,11 +26,33 @@ public class Startup : DefaultStartup public override void ConfigureServices(IServiceCollection services) { base.ConfigureServices(services); - + services.AddHostedService(); services.AddHostedService(); services.AddRemoteCall(App.ActiveTypes); services.AddMemoryCache(); } + + /// + public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + base.Configure(app, env); + + var healthCheckService = app.ApplicationServices.GetService(); + if (healthCheckService.DoHealthCheckAsync().GetAwaiter().GetResult()) + { + using var scope = app.ApplicationServices.CreateScope(); + var db = scope.ServiceProvider.GetService(); + + db.Client.DbMaintenance.CreateDatabase(); + db.Client.CodeFirst.InitTables(); + db.Client.CodeFirst.InitTables(); + db.Client.CodeFirst.InitTables(); + + var factories = scope.ServiceProvider.GetService().GetFactories(); + var ds = scope.ServiceProvider.GetService(); + ds.InitAsync(factories).Wait(); + } + } } \ No newline at end of file