.NET 6 通用主机运行特定服务

问题描述 投票:0回答:1

如何在通用主机上运行特定服务?

我有几个工作人员参与 .NET 6 通用宿主项目。当应用程序启动时,几个工人一起运行。

xx.ConfigureServices((hostContext, services) =>
    {
        services.AddHostedService<WorkerA>();
        services.AddHostedService<WorkerB>();
    }).Build();

如何这样跑步:

dotnet run -w workerX
c# .net-core
1个回答
0
投票

您可以尝试根据参数添加相应的服务。

var hostBuilder = Host.CreateDefaultBuilder(args);

// Parse arguments for the "-w" flag
string? workerService = null;
for (int i = 0; i < args.Length; i++)
{
    if (args[i] == "-w" && i + 1 < args.Length)
    {
        workerService = args[i + 1]?.ToLower();
        break;
    }
}

if (workerService == "workerA")
{
    Console.WriteLine("Running Service A...");
    hostBuilder.ConfigureServices(services =>
    {
        services.AddHostedService<WorkerA>();
    });
}
else if (workerService == "workerB")
{
    Console.WriteLine("Running Service B...");
    hostBuilder.ConfigureServices(services =>
    {
        services.AddHostedService<WorkerB>();
    });
}
else
{
    Console.WriteLine("Please specify a valid service to run with -w (serviceA or serviceB).");
    return;
}

await hostBuilder.Build().RunAsync();
© www.soinside.com 2019 - 2024. All rights reserved.