大型大型网站制作,网站搭建软件有哪些,为什么亿唐网不做网站做品牌,五通桥移动网站建设一个应用需要常驻操作系统后台服务#xff0c;可选框架有WindowsServiceLifeTime和SystemdLifeTime#xff0c;但需要区别对待不同操作系统且需要另外写命令安装。NewLife.Agent自2008年设计以来#xff0c;一直秉着简单易用的原则#xff0c;不仅实现了服务框架#xff0…一个应用需要常驻操作系统后台服务可选框架有WindowsServiceLifeTime和SystemdLifeTime但需要区别对待不同操作系统且需要另外写命令安装。NewLife.Agent自2008年设计以来一直秉着简单易用的原则不仅实现了服务框架还实现了安装卸载的简易菜单。今天我们让NewLife.Agent实现IHostLifeTime成为同时支持Windows和Linux的新一代服务主机开源项目https://github.com/NewLifeX/NewLife.AgentNugetNewLife.Extensions.Hosting.AgentService快速入门新建WorkerService服务项目从Nuget引入 NewLife.Extensions.Hosting.AgentService 。入口函数中写入using NewLife.Extensions.Hosting.AgentService;
using TestWorker;IHost host Host.CreateDefaultBuilder(args).ConfigureServices(services {services.AddHostedServiceWorker();}).UseAgentService(options {options.ServiceName TestWorker;options.DisplayName Worker服务测试;options.Description Worker服务的测试应用;}).Build();await host.RunAsync();Woker类中写入using NewLife.Log;namespace TestWorker
{public class Worker : BackgroundService{private readonly ILog _logger;public Worker(ILog logger){_logger logger;}protected override async Task ExecuteAsync(CancellationToken stoppingToken){while (!stoppingToken.IsCancellationRequested){_logger.Info(Worker running at: {0}, DateTimeOffset.Now);await Task.Delay(1000, stoppingToken);}}public override Task StartAsync(CancellationToken cancellationToken){XTrace.WriteLine(nameof(StartAsync));return base.StartAsync(cancellationToken);}public override Task StopAsync(CancellationToken cancellationToken){XTrace.WriteLine(nameof(StopAsync));return base.StopAsync(cancellationToken);}}
}双击 TestWorker.exe 跑起来也可以 dotnet TestWorker.dll 跑起来。按键 5 进入模拟运行即是执行Worker等所有 IHostedService方便开发调试。安装服务引入 NewLife.Extensions.Hosting.AgentService 后应用本身直接启动时是一个控制菜单用于控制服务的安装卸载、启动和停止。控制菜单和服务属于两个进程。按键 2 可以安装服务这里失败了因为安装卸载Windows服务需要管理员权限Linux需要sudo。在 TestWorker.exe 上点右键“以管理员身份运行”。按 3 即可启动服务也可以在Windows服务中找到服务并启动。在 Linux 中可以用 systemctl start TestWorker 启动服务。至此同时支持Windows和Linux的新一代服务主机示例完成。