From 430ae230ddc2dbc4550196172f2bb1ba90249867 Mon Sep 17 00:00:00 2001 From: Raymond den Haan Date: Tue, 13 Feb 2024 14:37:49 +0100 Subject: [PATCH] Configured Web project to include instance monitoring --- src/bundles/Elsa.ServerAndStudio.Web/Program.cs | 15 ++++++++++++++- .../Elsa.ServerAndStudio.Web/appsettings.json | 7 +++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Program.cs b/src/bundles/Elsa.ServerAndStudio.Web/Program.cs index 27933b2ac..551738b52 100644 --- a/src/bundles/Elsa.ServerAndStudio.Web/Program.cs +++ b/src/bundles/Elsa.ServerAndStudio.Web/Program.cs @@ -2,8 +2,10 @@ using Elsa.ServerAndStudio.Web.Extensions; using Elsa.EntityFrameworkCore.Extensions; using Elsa.EntityFrameworkCore.Modules.Management; using Elsa.EntityFrameworkCore.Modules.Runtime; +using Elsa.MassTransit.Options; using Elsa.Extensions; using Microsoft.AspNetCore.Mvc; +using Elsa.Hosting.Management.Options; const bool useMassTransit = true; @@ -12,8 +14,14 @@ builder.WebHost.UseStaticWebAssets(); var services = builder.Services; var configuration = builder.Configuration; var sqliteConnectionString = configuration.GetConnectionString("Sqlite")!; +var rabbitMqConnectionString = configuration.GetConnectionString("RabbitMq")!; +var azureServiceBusConnectionString = configuration.GetConnectionString("AzureServiceBus")!; var identitySection = configuration.GetSection("Identity"); var identityTokenSection = identitySection.GetSection("Tokens"); +var massTransitSection = configuration.GetSection("MassTransit"); +var heartbeatSection = configuration.GetSection("Heartbeat"); + +services.Configure(massTransitSection); // Add Elsa services. services @@ -30,8 +38,13 @@ services identity.UseConfigurationBasedRoleProvider(options => identitySection.Bind(options)); }) .UseDefaultAuthentication() + .UseInstanceManagement(x => x.HeartbeatSettings = settings => heartbeatSection.Bind(settings)); .UseWorkflowManagement(management => management.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString))) - .UseWorkflowRuntime(runtime => runtime.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString))) + .UseWorkflowRuntime(runtime => + { + runtime.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString)); + runtime.UseMassTransitDispatcher(); + }) .UseScheduling() .UseJavaScript(options => options.AllowClrAccess = true) .UseLiquid() diff --git a/src/bundles/Elsa.ServerAndStudio.Web/appsettings.json b/src/bundles/Elsa.ServerAndStudio.Web/appsettings.json index 4f0c9d1bc..74c4f0025 100644 --- a/src/bundles/Elsa.ServerAndStudio.Web/appsettings.json +++ b/src/bundles/Elsa.ServerAndStudio.Web/appsettings.json @@ -61,6 +61,13 @@ } ] }, + "Heartbeat": { + "InstanceHeartbeatRhythm": "00:00:01:00", + "InstanceDeactivatedPeriod": "00:00:05:00", + }, + "MassTransit": { + "ShortTermQueueLifetime": "00:00:05:00" + }, "Smtp": { "Host": "localhost", "Port": 2525,