diff --git a/aspnetcore/src/Indexer/Program.cs b/aspnetcore/src/Indexer/Program.cs index ce37814..45fd8d2 100644 --- a/aspnetcore/src/Indexer/Program.cs +++ b/aspnetcore/src/Indexer/Program.cs @@ -15,7 +15,7 @@ public class Program { private const int DefaultQueryTimeout = 300; - public static async Task Main(string[] args) + public static async Task Main(string[] args) { var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var configuration = new ConfigurationBuilder() @@ -30,24 +30,30 @@ public static async Task Main(string[] args) .ReadFrom.Configuration(configuration) .CreateLogger(); - // Create and configure the host to support dependency injection, configuration, etc. - var consoleHost = CreateHostBuilder(args).Build(); - - // Check if the database is ready for indexing. - var databasePreflightCheck = consoleHost.Services.GetRequiredService(); - if (!databasePreflightCheck.IsGood()) + try { - return; - } + var consoleHost = CreateHostBuilder(args).Build(); - // Get the "Main" service which handles the indexing. - var indexer = consoleHost.Services.GetRequiredService(); + var databasePreflightCheck = consoleHost.Services.GetRequiredService(); + if (!databasePreflightCheck.IsGood()) + { + return 1; + } - // Start indexing. - await indexer.Start(); + var indexer = consoleHost.Services.GetRequiredService(); + await indexer.Start(); - // Flush logs - Log.CloseAndFlush(); + return 0; + } + catch (Exception ex) + { + Log.Error(ex, "Indexer failed"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } private static IHostBuilder CreateHostBuilder(string[] args) => Host