mirror of
https://github.com/snltty/linker.git
synced 2025-12-24 12:38:04 +08:00
优化数据同步
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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
|
||||
})
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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解锁公开中继节点的带宽、流量、连接数限制
|
||||
|
||||
Reference in New Issue
Block a user