59 lines
1.8 KiB
C#
Raw Normal View History

2024-12-19 16:07:07 +08:00
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using JiShe.CollectBus.Data;
using Serilog;
using Volo.Abp;
using Volo.Abp.Data;
2025-06-10 09:18:58 +08:00
using JiShe.ServicePro.ApacheIoTDB.Provider.SessionPools;
2024-12-19 16:07:07 +08:00
namespace JiShe.CollectBus.DbMigrator;
public class DbMigratorHostedService : IHostedService
{
private readonly IHostApplicationLifetime _hostApplicationLifetime;
private readonly IConfiguration _configuration;
public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime, IConfiguration configuration)
{
_hostApplicationLifetime = hostApplicationLifetime;
_configuration = configuration;
}
public async Task StartAsync(CancellationToken cancellationToken)
{
using (var application = await AbpApplicationFactory.CreateAsync<CollectBusDbMigratorModule>(options =>
{
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
options.Services.AddLogging(c => c.AddSerilog());
options.AddDataMigrationEnvironment();
}))
{
await application.InitializeAsync();
2025-06-06 14:15:31 +08:00
//await application
// .ServiceProvider
// .GetRequiredService<CollectBusDbMigrationService>()
// .MigrateAsync();
//初始化IoTDB表模型
2024-12-19 16:07:07 +08:00
await application
.ServiceProvider
2025-06-06 14:15:31 +08:00
.GetRequiredService<IoTDBSessionPoolProvider>().GetSessionPool(true)
.InitTableSessionModelAsync();
2024-12-19 16:07:07 +08:00
await application.ShutdownAsync();
_hostApplicationLifetime.StopApplication();
}
}
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}