From c9c3a65bfb407a2cd1458a50fcbc0d16b6a79e7f Mon Sep 17 00:00:00 2001 From: tanglong <842690096@qq.com> Date: Wed, 16 Jul 2025 13:29:04 +0800 Subject: [PATCH] dd --- .../Mqtt/MqttBackgroundService.cs | 29 +++++++++++++++++++ YD_AllHeartRates.Api/Startup.cs | 8 +++-- YD_AllHeartRates.Api/Utilities/AppSettings.cs | 2 ++ YD_AllHeartRates.Api/appsettings.json | 2 ++ .../MemoryCaches/RedisCacheService.cs | 4 +-- 5 files changed, 41 insertions(+), 4 deletions(-) diff --git a/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs b/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs index 9a71ade..0cfb42f 100644 --- a/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs +++ b/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs @@ -80,6 +80,8 @@ namespace YD_AllHeartRates.Api.Mqtt protected override async Task ExecuteAsync(CancellationToken stoppingToken) { + _ = RunJumpSyncLoopAsync(stoppingToken); + await _client.ConnectAsync(new MqttClientOptionsBuilder() .WithTcpServer(AppSettings.Mqtt.Host, AppSettings.Mqtt.Port) .Build(), stoppingToken); @@ -291,6 +293,33 @@ namespace YD_AllHeartRates.Api.Mqtt }); } } + private async Task RunJumpSyncLoopAsync(CancellationToken token) + { + while (!token.IsCancellationRequested) + { + try + { + await SyncTodayJumpDataToDbAsync(); + } + catch (Exception ex) + { + _log.LogError(ex, "跳绳数据同步异常"); + } + + try + { + await Task.Delay(TimeSpan.FromSeconds(10), token); + } + catch (TaskCanceledException) + { + // 如果是取消任务导致 delay 中断,直接退出 + break; + } + } + + _log.LogInformation("跳绳数据同步任务已退出"); + } + private byte[]? ParseHexData(string hex) diff --git a/YD_AllHeartRates.Api/Startup.cs b/YD_AllHeartRates.Api/Startup.cs index 6f4be32..1a2fac1 100644 --- a/YD_AllHeartRates.Api/Startup.cs +++ b/YD_AllHeartRates.Api/Startup.cs @@ -28,6 +28,7 @@ using YD_AllHeartRates.Api.Mqtt; using YD_AllHeartRates.Commons.MemoryCaches; using YD_AllHeartRates.Api.Middlewares; using YD_AllHeartRates.Api.WebSocket; +using CSRedis; namespace YD_AllHeartRates.Api { @@ -74,6 +75,11 @@ namespace YD_AllHeartRates.Api services.AddSingleton(mqttCfg); services.AddSingleton(new MqttFactory().CreateMqttClient()); + //Redis + var csredis = new CSRedisClient(AppSettings.RedisConnectionString); + RedisHelper.Initialization(csredis); + services.AddSingleton(); + // ③ 后台批量写库服务 services.AddHostedService(); @@ -83,8 +89,6 @@ namespace YD_AllHeartRates.Api services.AddScoped(); services.AddScoped(); services.AddScoped(); - - services.AddScoped(); services.AddScoped(); services.AddSession(); services.AddMemoryCache(); diff --git a/YD_AllHeartRates.Api/Utilities/AppSettings.cs b/YD_AllHeartRates.Api/Utilities/AppSettings.cs index a7b137b..b026931 100644 --- a/YD_AllHeartRates.Api/Utilities/AppSettings.cs +++ b/YD_AllHeartRates.Api/Utilities/AppSettings.cs @@ -10,6 +10,7 @@ public static string DbConnectionString { get; set; } public static string SmartSportsString { get; set; } + public static string RedisConnectionString { get; set; } public static string[] CorsUrls { get; set; } public static MqttConfig Mqtt { get; set; } @@ -22,6 +23,7 @@ FlushTime = configuration["FlushTime"]; DbConnectionString = configuration["DbConnectionString"]; SmartSportsString = configuration["SmartSportsString"]; + RedisConnectionString = configuration["RedisConnectionString"]; CorsUrls = configuration["CorsUrls"].Split(','); Mqtt = configuration.GetSection("Mqtt").Get(); } diff --git a/YD_AllHeartRates.Api/appsettings.json b/YD_AllHeartRates.Api/appsettings.json index 1a6dba6..b13899c 100644 --- a/YD_AllHeartRates.Api/appsettings.json +++ b/YD_AllHeartRates.Api/appsettings.json @@ -28,6 +28,8 @@ "AppUrls": { }, + "RedisConnectionString": "8.153.108.90,Password=yd708090,SyncTimeout=15000,defaultDatabase=5", + "DbConnectionString": " Data Source=rm-uf64b8oxdt19pfyxfao.sqlserver.rds.aliyuncs.com;Database=AllHeartRatesDB_QA;User ID=qa;Password=Admin@123;Connect Timeout=500;", "SmartSportsString": " Data Source=rm-uf64b8oxdt19pfyxfao.sqlserver.rds.aliyuncs.com;Database=SmartSportsServerDB_QA;User ID=qa;Password=Admin@123;Connect Timeout=500;", diff --git a/YD_AllHeartRates.Commons/MemoryCaches/RedisCacheService.cs b/YD_AllHeartRates.Commons/MemoryCaches/RedisCacheService.cs index 877a6d2..048e96b 100644 --- a/YD_AllHeartRates.Commons/MemoryCaches/RedisCacheService.cs +++ b/YD_AllHeartRates.Commons/MemoryCaches/RedisCacheService.cs @@ -15,8 +15,8 @@ namespace YD_AllHeartRates.Commons.MemoryCaches { public RedisCacheService() { - var csredis = new CSRedisClient("8.153.108.90,Password=yd708090,SyncTimeout=15000,defaultDatabase=5"); - RedisHelper.Initialization(csredis); + //var csredis = new CSRedisClient("8.153.108.90,Password=yd708090,SyncTimeout=15000,defaultDatabase=5"); + //RedisHelper.Initialization(csredis); } /// /// 验证缓存项是否存在