简体   繁体   English

.NET Core Worker服务宿主为Windows服务(使用Coravel进行任务调度)

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM