Skip to content

Commit af745d1

Browse files
Primary instance custom lifecycle
1 parent 61e93dc commit af745d1

File tree

1 file changed

+32
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)