首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.NET核心后端服务应用程序

Asp.NET核心后端服务应用程序
EN

Stack Overflow用户
提问于 2018-09-17 09:58:05
回答 1查看 475关注 0票数 1

我是否可以创建一个Asp.Net核心应用程序,该应用程序本质上可以模仿windows服务,并且只是在后台不断地运行呢?我怀疑你可以,但我不确定该使用哪种应用程序类型。控制台应用,网络应用,等等)。

场景:这是一个非常利基的情况,因为它将创建一个基于云的环境,我们正在使用西门子MindSphere。我们已经有了一个可以从PostgreSQL数据库读取的云中应用程序,但是我们需要一个后端服务应用程序,它每小时都可以调用MindSphere Api,从它接收数据,并用这些数据填充上面数据库中的一个字段。这有可能使用.net内核吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-17 10:06:36

您可以使用背景任务。定时任务示例:

代码语言:javascript
复制
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();
    }
}

Startup.cs在ConfigureServices中的注册

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddHostedService<TimedHostedService>();
    ...
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52365135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档