Ungefähr jede Minute erzeugt er ein paar lange laufende Arbeitsthreads.
Ich kann den Status der Threads und ausstehenden Jobs erfassen.
Ich habe mich gefragt, ob es möglich ist, einen http-Endpunkt verfügbar zu machen, um diesen Status einem Endbenutzer anzuzeigen, und wie würde man das machen?
Program.cs
Code: Select all
public static void Main(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
var services = builder.Services;
var configuration = builder.Configuration;
// configuration setup
services.AddLogging();
services.AddHttpClient().RemoveAll();
// service registration
builder.Services.AddHostedService();
// Build and configure the app
var app = builder.Build();
app.Run();
}
Code: Select all
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
// Do stuff...
var delayMs = _options.PollingIntervalSeconds * 1000;
try
{
await Task.Delay(delayMs, stoppingToken);
}
catch (OperationCanceledException)
{
// Expected during shutdown
break;
}
}
}
Mobile version