public async static Task Run(CancellationToken cancellation) { var engines = Configuration.Value.GetSection($"{nameof(PollerOptions)}").Get <Collection <PollerOptions> >(); var hosts = new List <IHost>() { Host.CreateDefaultBuilder().ConfigureHealthCheck() }; foreach (var engine in Engine.ToList(engines?.Select(e => e.Engine))) { var host = EngineHostBuilder.ResolveAndBuild(engine); hosts.Add(host); } var tasks = hosts.Select(host => { var childSource = CancellationTokenSource.CreateLinkedTokenSource(cancellation); return(RunHost(host, childSource.Token)); }); await Task.WhenAll(tasks); }
public void Should_build_supported_hosts(string engineName, string hostName) { var engine = Engine.FromName(engineName); var host = EngineHostBuilder.ResolveAndBuild(engine); var appHost = host.Services.GetService(typeof(IHostedService)); Assert.NotNull(appHost); Assert.Equal(hostName, appHost.GetType().Name); host.Dispose(); }
public void Should_throw_NotSupportedEngineException_when_creating_host() { Assert.Throws <NotSupportedEngineException>(() => EngineHostBuilder.ResolveAndBuild(Engine.Unsupported)); }