From a07ab8330eaf528d49f4d33dc0b41f867698f695 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 14 Nov 2024 16:24:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=AF=B7=E6=B1=82=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Apis/Handlers/ClientHandler.cs | 4 ++-- .../Apis/Handlers/HealthzClientHandler.cs | 23 +++++++++++++++++++ Src/Dlhis.Middle/Apis/ICommonApi.cs | 14 +++++++---- .../Services/Implements/HealthcheckService.cs | 4 ++-- 4 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 Src/Dlhis.Middle/Apis/Handlers/HealthzClientHandler.cs diff --git a/Src/Dlhis.Middle/Apis/Handlers/ClientHandler.cs b/Src/Dlhis.Middle/Apis/Handlers/ClientHandler.cs index fa3b1694..43f4031d 100644 --- a/Src/Dlhis.Middle/Apis/Handlers/ClientHandler.cs +++ b/Src/Dlhis.Middle/Apis/Handlers/ClientHandler.cs @@ -7,7 +7,7 @@ public class ClientHandler : IHttpRemoteCallPolicyHandler /// public IHttpClientBuilder ConfigureHttpClient(IHttpClientBuilder builder) { - builder.ConfigureHttpClient(client => { client.Timeout = TimeSpan.FromSeconds(10); }).ConfigurePrimaryHttpMessageHandler(() => + builder.ConfigureHttpClient(client => { client.Timeout = TimeSpan.FromMinutes(5); }).ConfigurePrimaryHttpMessageHandler(() => { var handler = new HttpClientHandler { @@ -17,7 +17,7 @@ public class ClientHandler : IHttpRemoteCallPolicyHandler return handler; }); - + return builder; } } \ No newline at end of file diff --git a/Src/Dlhis.Middle/Apis/Handlers/HealthzClientHandler.cs b/Src/Dlhis.Middle/Apis/Handlers/HealthzClientHandler.cs new file mode 100644 index 00000000..9cffe733 --- /dev/null +++ b/Src/Dlhis.Middle/Apis/Handlers/HealthzClientHandler.cs @@ -0,0 +1,23 @@ +using Kurisu.RemoteCall.Abstractions; + +namespace Dlhis.Middle.Apis.Handlers; + +public class HealthzClientHandler : IHttpRemoteCallPolicyHandler +{ + /// + public IHttpClientBuilder ConfigureHttpClient(IHttpClientBuilder builder) + { + builder.ConfigureHttpClient(client => { client.Timeout = TimeSpan.FromSeconds(10); }).ConfigurePrimaryHttpMessageHandler(() => + { + var handler = new HttpClientHandler + { + ClientCertificateOptions = ClientCertificateOption.Manual, + ServerCertificateCustomValidationCallback = (_, _, _, _) => true + }; + + return handler; + }); + + return builder; + } +} \ No newline at end of file diff --git a/Src/Dlhis.Middle/Apis/ICommonApi.cs b/Src/Dlhis.Middle/Apis/ICommonApi.cs index b44214fc..558dd19a 100644 --- a/Src/Dlhis.Middle/Apis/ICommonApi.cs +++ b/Src/Dlhis.Middle/Apis/ICommonApi.cs @@ -12,11 +12,17 @@ public interface ICommonApi [Post("/api/user/oauth2/clientgrant")] public Task> AuthAsync(object request); - [Auth(TokenHandler = typeof(FaceBearerTokenHandler))] - [Post("/api/common/middles/healthz")] - public Task CheckHealthAsync(HealthCheckRequest request); - [Auth(TokenHandler = typeof(FaceBearerTokenHandler))] [Get("/api/common/SysData/download")] public Task>> DownloadAsync(string factory, string tableName); +} + +//HealthzClientHandler + +[EnableRemoteClient(Name = "face-service", BaseUrl = "${BaseUrl}", PolicyHandler = typeof(HealthzClientHandler))] +public interface IHealthzApi +{ + [Auth(TokenHandler = typeof(FaceBearerTokenHandler))] + [Post("/api/common/middles/healthz")] + public Task CheckHealthAsync(HealthCheckRequest request); } \ No newline at end of file diff --git a/Src/Dlhis.Middle/Services/Implements/HealthcheckService.cs b/Src/Dlhis.Middle/Services/Implements/HealthcheckService.cs index 3b44aa94..1feee1d4 100644 --- a/Src/Dlhis.Middle/Services/Implements/HealthcheckService.cs +++ b/Src/Dlhis.Middle/Services/Implements/HealthcheckService.cs @@ -9,14 +9,14 @@ public class HealthCheckService : IHealthCheckService private bool _isOffline; private readonly ILogger _logger; private readonly ISettingService _settingService; - private readonly ICommonApi _healthCheckApi; + private readonly IHealthzApi _healthCheckApi; private int _attempted; private bool _isBegin; public HealthCheckService(ILogger logger, ISettingService settingService, - ICommonApi healthCheckApi) + IHealthzApi healthCheckApi) { _logger = logger; _settingService = settingService;