我是否可以创建一个Asp.Net核心应用程序,该应用程序本质上可以模仿windows服务,并且只是在后台不断地运行呢?我怀疑你可以,但我不确定该使用哪种应用程序类型。控制台应用,网络应用,等等)。
场景:这是一个非常利基的情况,因为它将创建一个基于云的环境,我们正在使用西门子MindSphere。我们已经有了一个可以从PostgreSQL数据库读取的云中应用程序,但是我们需要一个后端服务应用程序,它每小时都可以调用MindSphere Api,从它接收数据,并用这些数据填充上面数据库中的一个字段。这有可能使用.net内核吗?
发布于 2018-09-17 10:06:36
您可以使用背景任务。定时任务示例:
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中的注册
public void ConfigureServices(IServiceCollection services)
{
...
services.AddHostedService<TimedHostedService>();
...
}https://stackoverflow.com/questions/52365135
复制相似问题