[英].NET Core Worker service host as a Windows Services (using Coravel for task scheduling)
I have created a worker service to schedule a task using Coravel is a .NET Standard library and it is working as expected.我创建了一个工作人员服务来使用 Coravel 安排任务是一个 .NET 标准库,它按预期工作。 I want to host the same as a windows service.
我想托管与 windows 服务相同的服务。
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) =>
{
services.AddScheduler();
services.AddHostedService<Worker>(); //background service
}
But i am using Corvel Invocable so is there any way i can achieve the same to host as a windows service?但是我使用的是 Corvel Invocable,那么有什么方法可以实现与 windows 服务相同的托管效果吗? like:
喜欢:
public static void Main(string[] args)
{
IHost host = CreateHostBuilder(args).Build();
host.Services.UseScheduler(scheduler =>
{
scheduler.Schedule<CsvGenerationInvocable>().EveryMinute();
});
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) =>
{
services.AddScheduler();
services.AddHostedService<CsvGenerationInvocable>(); // Error no implicit conversion to IHostedService
}
Corval Invokable: Corval 可调用:
public class CsvGenerationInvocable : IInvocable
{
public async Task Invoke()
{
//Logic
}
}
You need to also inherit Background service to your Invokable class.您还需要将后台服务继承到您的 Invokable class。
public class CsvGenerationInvocable : BackgroundService, IInvocable
{
public async Task Invoke()
{
//Logic
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.