dd
This commit is contained in:
parent
ac45401a00
commit
08790e2e25
@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using MQTTnet;
|
using MQTTnet;
|
||||||
using MQTTnet.Client;
|
using MQTTnet.Client;
|
||||||
using MQTTnet.Protocol;
|
using MQTTnet.Protocol;
|
||||||
|
using System.Collections.Concurrent;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Reflection.PortableExecutable;
|
using System.Reflection.PortableExecutable;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
@ -108,41 +109,29 @@ namespace YD_AllHeartRates.Api.Mqtt
|
|||||||
|
|
||||||
await foreach (var batch in ReadBatchesAsync(stoppingToken))
|
await foreach (var batch in ReadBatchesAsync(stoppingToken))
|
||||||
{
|
{
|
||||||
var heartRateEntities = new List<HeartRateData>();
|
var heartRateEntities = new ConcurrentBag<HeartRateData>();
|
||||||
var jumpRopeEntities = new List<JumpRopeData>();
|
var jumpRopeEntities = new ConcurrentBag<JumpRopeData>();
|
||||||
|
|
||||||
foreach (var msg in batch)
|
Parallel.ForEach(batch, msg =>
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(msg.Payload)) continue;
|
if (string.IsNullOrWhiteSpace(msg.Payload)) return;
|
||||||
|
|
||||||
List<BlePayload>? list = null;
|
BlePayload payload;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var trimmed = msg.Payload.TrimStart();
|
payload = JsonSerializer.Deserialize<BlePayload>(msg.Payload, _jsonOpt);
|
||||||
|
if (payload == null) return;
|
||||||
if (trimmed.StartsWith("{"))
|
|
||||||
{
|
|
||||||
var single = JsonSerializer.Deserialize<BlePayload>(msg.Payload, _jsonOpt);
|
|
||||||
if (single != null)
|
|
||||||
list = new List<BlePayload> { single };
|
|
||||||
}
|
|
||||||
else if (trimmed.StartsWith("["))
|
|
||||||
{
|
|
||||||
list = JsonSerializer.Deserialize<List<BlePayload>>(msg.Payload, _jsonOpt);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (JsonException ex)
|
catch (JsonException ex)
|
||||||
{
|
{
|
||||||
_log.LogWarning(ex, "Payload 不是合法 JSON: {Json}", msg.Payload);
|
_log.LogWarning(ex, "Payload 不是合法 JSON: {Json}", msg.Payload);
|
||||||
continue;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (list is null || list.Count == 0) continue;
|
var heartRateList = payload.devices.Where(x => x.bs_name.Contains("GTY0")).ToList();
|
||||||
|
var jumpRopeList = payload.devices.Where(x => x.bs_name.Contains("RS207")).ToList();
|
||||||
|
|
||||||
var heartRateList = list.SelectMany(x => x.devices).Where(x => x.bs_name.Contains("GTY0")).ToList();
|
var scoreTime = DateTime.ParseExact(payload.send_time, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
|
||||||
var jumpRopeList = list.SelectMany(x => x.devices).Where(x => x.bs_name.Contains("RS207")).ToList();
|
|
||||||
|
|
||||||
var scoreTime = DateTime.ParseExact(list.Select(x => x.send_time).First(), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
|
|
||||||
|
|
||||||
foreach (var ble in heartRateList)
|
foreach (var ble in heartRateList)
|
||||||
{
|
{
|
||||||
@ -291,7 +280,7 @@ namespace YD_AllHeartRates.Api.Mqtt
|
|||||||
|
|
||||||
//RedisHelper.SAdd(studentSetKey, student.StudentNo);
|
//RedisHelper.SAdd(studentSetKey, student.StudentNo);
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
// 心率每分钟保存一次
|
// 心率每分钟保存一次
|
||||||
if ((DateTime.Now - _lastHeartRateSaveTime).TotalSeconds >= 60 && _pendingHeartRates.Any())
|
if ((DateTime.Now - _lastHeartRateSaveTime).TotalSeconds >= 60 && _pendingHeartRates.Any())
|
||||||
|
@ -43,6 +43,6 @@
|
|||||||
"Host": "8.153.108.90",
|
"Host": "8.153.108.90",
|
||||||
"Port": 1883,
|
"Port": 1883,
|
||||||
"Topic": "heartrates/topic",
|
"Topic": "heartrates/topic",
|
||||||
"BatchSize": 1
|
"BatchSize": 10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_AllHeartRates.Api")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_AllHeartRates.Api")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e2e455beb818072bf47a3f72e7c28aee0d81f2f6")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ac45401a00234bcfe5b0bc7e4b43ab7a3e737f16")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("YD_AllHeartRates.Api")]
|
[assembly: System.Reflection.AssemblyProductAttribute("YD_AllHeartRates.Api")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("YD_AllHeartRates.Api")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("YD_AllHeartRates.Api")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
@ -1 +1 @@
|
|||||||
24a647519bb5c818af84137d9f158bd3c8bb26dee151c991a4a8d9432822805b
|
2a88393a86ca30e91023931fadfc25c17abd0bd7e8685dbc1401c11194e83ca9
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user