优化IsMatch性能

This commit is contained in:
陈国伟 2021-09-17 12:59:43 +08:00
parent 002ad37e3b
commit 82e51ab358
4 changed files with 13 additions and 5 deletions

View File

@ -28,7 +28,7 @@ namespace FastGithub.Configuration
{
this.logger = logger;
var opt = options.CurrentValue;
this.domainConfigs = ConvertDomainConfigs(opt.DomainConfigs);
this.domainConfigCache = new ConcurrentDictionary<string, DomainConfig?>();
@ -42,7 +42,7 @@ namespace FastGithub.Configuration
private void Update(FastGithubOptions options)
{
try
{
{
this.domainConfigs = ConvertDomainConfigs(options.DomainConfigs);
this.domainConfigCache = new ConcurrentDictionary<string, DomainConfig?>();
}
@ -74,7 +74,7 @@ namespace FastGithub.Configuration
/// <returns></returns>
public bool IsMatch(string domain)
{
return this.domainConfigs.Keys.Any(item => item.IsMatch(domain));
return this.TryGetDomainConfig(domain, out _);
}
/// <summary>

View File

@ -105,7 +105,7 @@ namespace FastGithub.HttpServer
return new IPEndPoint(address, targetPort);
}
if (this.fastGithubConfig.TryGetDomainConfig(targetHost, out _) == false)
if (this.fastGithubConfig.IsMatch(targetHost) == false)
{
return new DnsEndPoint(targetHost, targetPort);
}

View File

@ -23,7 +23,7 @@ namespace FastGithub
public Task StopAsync(CancellationToken cancellationToken)
{
this.logger.LogInformation($"{nameof(FastGithub)}停止运行");
this.logger.LogInformation($"{nameof(FastGithub)}停止运行");
return Task.CompletedTask;
}
}

View File

@ -4,6 +4,7 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
using System.Threading.Tasks;
namespace FastGithub
{
@ -59,6 +60,13 @@ namespace FastGithub
{
appBuilder.UseRequestLogging();
appBuilder.UseHttpReverseProxy();
appBuilder.UseRouting();
appBuilder.UseEndpoints(endpoint => endpoint.MapFallback(context =>
{
context.Response.Redirect("https://github.com/dotnetcore/FastGithub");
return Task.CompletedTask;
}));
});
}
}