Skip to content

Commit 61e93dc

Browse files
Add the monitoring instance custom lifecycle to request additional time on stop
1 parent 7552c56 commit 61e93dc

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
namespace ServiceControl.Monitoring.Hosting;
2+
3+
using Microsoft.Extensions.Hosting;
4+
using Microsoft.Extensions.Hosting.WindowsServices;
5+
using Microsoft.Extensions.Logging;
6+
using Microsoft.Extensions.Options;
7+
8+
#pragma warning disable CA1416
9+
class WindowsServiceCustomLifetime : WindowsServiceLifetime
10+
{
11+
public WindowsServiceCustomLifetime(IHostEnvironment environment, IHostApplicationLifetime applicationLifetime, ILoggerFactory loggerFactory, IOptions<HostOptions> optionsAccessor, Settings settings)
12+
: base(environment, applicationLifetime, loggerFactory, optionsAccessor)
13+
{
14+
this.settings = settings;
15+
}
16+
17+
public WindowsServiceCustomLifetime(IHostEnvironment environment, IHostApplicationLifetime applicationLifetime, ILoggerFactory loggerFactory, IOptions<HostOptions> optionsAccessor, IOptions<WindowsServiceLifetimeOptions> windowsServiceOptionsAccessor, Settings settings)
18+
: base(environment, applicationLifetime, loggerFactory, optionsAccessor, windowsServiceOptionsAccessor)
19+
{
20+
this.settings = settings;
21+
}
22+
23+
protected override void OnStop()
24+
{
25+
RequestAdditionalTime(settings.ShutdownTimeout);
26+
base.OnStop();
27+
}
28+
29+
readonly Settings settings;
30+
}
31+
#pragma warning restore CA1416

0 commit comments

Comments
 (0)