二十、进程服务(Daemon)
通过系统进程服务可以方便快捷的创建系统服务,如Windows服务,Linux守护进程等。
关于进程服务
有几种类型
如何使用
第一步
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Hoa.Worker.Projects.Workers
{
public class ProjectWorker : BackgroundService
{
// 可以使用依赖注入服务,
// 如配置文件读取、数据库操作、上下文操作、仓储等等
private readonly IConfiguration _configuration;
private readonly ILogger<ProjectWorker> _logger;
private readonly HoaDbContext _dbContext;
private readonly IRepository<Test> _testRepository;
public ProjectWorker(
IConfiguration configuration
, ILogger<ProjectWorker> logger
, HoaDbContext dbContext
, IRepository<Test> testRepository
)
{
_configuration = configuration;
_logger = logger;
_dbContext = dbContext;
_testRepository = testRepository;
}
// 服务启动时配置
public override Task StartAsync(CancellationToken cancellationToken)
{
// 业务代码写在这里
return base.StartAsync(cancellationToken);
}
// 服务正常运行执行功能,也就是我们的核心代码
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
// 业务代码写在这里!!!!!!!!
await Task.CompletedTask;
}
}
// 服务停止时配置
public override Task StopAsync(CancellationToken cancellationToken)
{
// 业务代码写在这里
return base.StopAsync(cancellationToken);
}
}
}第二步
第三步

命令代码如下:
第四步

脚本说明
create_system_services.ps1 参数说明
执行命令:
参数配置
delete_system_services.ps1 参数说明
执行命令
参数配置
多个工作进程
调试代码

部署到生产环境
查看生产环境日志

部署到Linux服务器
注意事项
关于数据库增删改操作🤷♀️
最后更新于