簡體   English   中英

Asp.NET核心后端服務應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM