[英]Asp.NET core backend service application
我可以創建一個Asp.Net核心應用程序,它可以基本上模仿Windows服務,並且只是在后台運行嗎? 我懷疑你可以,但我不確定使用哪種應用程序類型(即控制台應用程序,Web應用程序等)。
場景:這是一個非常小眾的情況,因為它將為我們正在使用的基於雲的環境(Siemens MindSphere)創建。 我們已經在雲中有一個可以從PostgreSQL數據庫讀取的應用程序,但我們需要一個后端服務應用程序,每小時一小時可以調用MindSphere Api,從中接收數據並用這些數據填充上述數據庫中的字段。 這可能是使用.net核心嗎?
您可以使用后台任務 。 定時任務示例:
internal class TimedHostedService : IHostedService, IDisposable
{
private readonly ILogger _logger;
private Timer _timer;
public TimedHostedService(ILogger<TimedHostedService> logger)
{
_logger = logger;
}
public Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Timed Background Service is starting.");
_timer = new Timer(DoWork, null, TimeSpan.Zero,
TimeSpan.FromSeconds(5));
return Task.CompletedTask;
}
private void DoWork(object state)
{
_logger.LogInformation("Timed Background Service is working.");
}
public Task StopAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Timed Background Service is stopping.");
_timer?.Change(Timeout.Infinite, 0);
return Task.CompletedTask;
}
public void Dispose()
{
_timer?.Dispose();
}
}
在ConfigureServices
中的Startup.cs中注冊:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddHostedService<TimedHostedService>();
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.