优化数据同步

This commit is contained in:
snltty
2025-03-18 20:45:22 +08:00
parent 8af4c4a540
commit 217d21335c
4 changed files with 56 additions and 3 deletions

View File

@@ -69,6 +69,57 @@ namespace linker.messenger.decenter
return Helper.EmptyArray;
}
private void SyncTask()
{
TimerHelper.SetIntervalLong(async () =>
{
try
{
var tasks = syncs.Where(c => c.SyncVersion.Reset()).Select(c =>
{
return new DecenterSyncTaskInfo
{
Decenter = c,
Time = Environment.TickCount64,
Task = messengerSender.SendReply(new MessageRequestWrap
{
Connection = signInClientState.Connection,
MessengerId = (ushort)DecenterMessengerIds.SyncForward,
Payload = serializer.Serialize(new DecenterSyncInfo { Name = c.Name, Data = c.GetData() }),
Timeout = 15000
})
};
}).ToList();
if (tasks.Count > 0)
{
await Task.WhenAll(tasks.Select(c => c.Task));
foreach (var task in tasks)
{
if (task.Task.Result.Code == MessageResponeCodes.OK)
{
List<ReadOnlyMemory<byte>> list = serializer.Deserialize<List<ReadOnlyMemory<byte>>>(task.Task.Result.Data.Span);
task.Decenter.SetData(list);
}
else
{
if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG)
{
LoggerHelper.Instance.Error($"decenter {task.Decenter.Name}->{task.Task.Result.Code}");
}
}
}
}
}
catch (Exception ex)
{
if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG)
{
LoggerHelper.Instance.Error(ex);
}
}
}, () => 300);
}
/*
private void SyncTask()
{
TimerHelper.SetIntervalLong(async () =>
@@ -106,11 +157,12 @@ namespace linker.messenger.decenter
}
}, 300);
}
*/
class DecenterSyncTaskInfo
{
public IDecenter Decenter { get; set; }
public Task<bool> Task { get; set; }
public Task<MessageResponeInfo> Task { get; set; }
public long Time { get; set; }
}

View File

@@ -162,7 +162,7 @@ namespace linker.messenger.decenter
Payload = serializer.Serialize(new DecenterSyncInfo170
{
Data = memory,
FromMachineId = signInClientState.Connection.Id,
FromMachineId = connection.Id,
ToMachineId = info.FromMachineId,
Name = info.Name
})

View File

@@ -115,6 +115,7 @@ namespace linker.messenger.tuntap
if (DataVersion.Eq(version, out ulong _version) == false)
{
AddRoute();
LoggerHelper.Instance.Warning($"tuntap data version changed,AddRoute() again");
}
version = _version;
}, 3000);

View File

@@ -1,5 +1,5 @@
v1.7.0
2025-03-18 19:40:38
2025-03-18 20:45:22
1. 优化linux下路由跟踪问题提高启动速度
2. 优化linux下获取本机IP问题提升虚拟网卡稳定性
3. 增加中继cdkey使用cdkey解锁公开中继节点的带宽、流量、连接数限制