From 30bd16447f3b0ea9e942fbedb1046eb6ebf12a6e Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Sat, 13 Feb 2021 21:17:48 -0500 Subject: [PATCH] stop application if worker fails --- src/BirdsiteLive/Services/FederationService.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/BirdsiteLive/Services/FederationService.cs b/src/BirdsiteLive/Services/FederationService.cs index 9acab41..7ff4c1f 100644 --- a/src/BirdsiteLive/Services/FederationService.cs +++ b/src/BirdsiteLive/Services/FederationService.cs @@ -13,19 +13,28 @@ namespace BirdsiteLive.Services { private readonly IDatabaseInitializer _databaseInitializer; private readonly IStatusPublicationPipeline _statusPublicationPipeline; + private readonly IHostApplicationLifetime _applicationLifetime; #region Ctor - public FederationService(IDatabaseInitializer databaseInitializer, IStatusPublicationPipeline statusPublicationPipeline) + public FederationService(IDatabaseInitializer databaseInitializer, IStatusPublicationPipeline statusPublicationPipeline, IHostApplicationLifetime applicationLifetime) { _databaseInitializer = databaseInitializer; _statusPublicationPipeline = statusPublicationPipeline; + _applicationLifetime = applicationLifetime; } #endregion protected override async Task ExecuteAsync(CancellationToken stoppingToken) { - await _databaseInitializer.InitAndMigrateDbAsync(); - await _statusPublicationPipeline.ExecuteAsync(stoppingToken); + try + { + await _databaseInitializer.InitAndMigrateDbAsync(); + await _statusPublicationPipeline.ExecuteAsync(stoppingToken); + } + finally + { + _applicationLifetime.StopApplication(); + } } } } \ No newline at end of file