在 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>();