0

在 Aspnet 核心中创建服务有不同的方法。IHostedService接口用于创建像Windows Service这样的服务。

在 WebApi 项目中使用IHostedService并将其部署为 Web 项目。一旦 API 项目启动,您的服务就会启动。

服务代码: 创建一个MyHostedService.cs类并将以下代码放入该类中。

班级

public class MyHostedService:IHostedService 
{
  private Timer _timer { get; set; }
}

开始

public Task StartAsync(CancellationToken cancellationToken)
{ 
    _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(OrderExportPurgeTimeInterval));
    return Task.CompletedTask;
}   

停止

public Task StopAsync(CancellationToken cancellationToken)
{
    _timer ?.Change(Timeout.Infinite, 0);
    return Task.CompletedTask;
}

你的工作

private void DoWork(object state)
{
    bool hasLock = false;
    try
      {
        Monitor.TryEnter(_locker, ref hasLock);
        if (hasLock)
        {
            PurgeProcessor.ProcessPurge().Wait();
        }
      }
      finally
      {
          if (hasLock) Monitor.Exit(_locker);
      }
 }

启动.cs

services.AddHostedService<MyHostedService>();
4

0 回答 0