Use IHostApplicationLifetime to manually terminate the console application.

Resolve #3574
pull/3577/head
maliming 6 years ago
parent b953f16704
commit 4d347cddf6

@ -10,6 +10,13 @@ namespace MyCompanyName.MyProjectName.DbMigrator
{ {
public class DbMigratorHostedService : IHostedService public class DbMigratorHostedService : IHostedService
{ {
private readonly IHostApplicationLifetime _hostApplicationLifetime;
public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime)
{
_hostApplicationLifetime = hostApplicationLifetime;
}
public async Task StartAsync(CancellationToken cancellationToken) public async Task StartAsync(CancellationToken cancellationToken)
{ {
using (var application = AbpApplicationFactory.Create<MyProjectNameDbMigratorModule>(options => using (var application = AbpApplicationFactory.Create<MyProjectNameDbMigratorModule>(options =>
@ -26,6 +33,8 @@ namespace MyCompanyName.MyProjectName.DbMigrator
.MigrateAsync(); .MigrateAsync();
application.Shutdown(); application.Shutdown();
_hostApplicationLifetime.StopApplication();
} }
} }

Loading…
Cancel
Save