|
|
@ -197,11 +197,10 @@ namespace LTEMvcApp.Services |
|
|
|
/// </summary>
|
|
|
|
public void Stop() |
|
|
|
{ |
|
|
|
var oldLogGetId = _logGetId; |
|
|
|
var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1); |
|
|
|
SetState(ClientState.Stop); |
|
|
|
StopTimers(); |
|
|
|
_isSocketReady = false; // 重置连接状态标志
|
|
|
|
_logGetId = -1; // 重置LogGet ID
|
|
|
|
_logger.LogDebug($"[{_config.Name}] 停止连接,LogGet ID重置: {oldLogGetId} -> {_logGetId}"); |
|
|
|
} |
|
|
|
|
|
|
@ -410,9 +409,10 @@ namespace LTEMvcApp.Services |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var oldLogGetId = _logGetId; |
|
|
|
_logGetId = SendMessage(message, LogGetParse); |
|
|
|
_logger.LogDebug($"[{_config.Name}] LogGet ID变化: {oldLogGetId} -> {_logGetId}, 参数: {JsonConvert.SerializeObject(parameters)}"); |
|
|
|
var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1); // 临时设置为-1,防止重复
|
|
|
|
var newLogGetId = SendMessage(message, LogGetParse); |
|
|
|
Interlocked.Exchange(ref _logGetId, newLogGetId); // 设置新的LogGet ID
|
|
|
|
_logger.LogDebug($"[{_config.Name}] LogGet ID变化: {oldLogGetId} -> {newLogGetId}, 参数: {JsonConvert.SerializeObject(parameters)}"); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
@ -446,7 +446,7 @@ namespace LTEMvcApp.Services |
|
|
|
/// <returns>当前LogGet ID</returns>
|
|
|
|
public int GetCurrentLogGetId() |
|
|
|
{ |
|
|
|
return _logGetId; |
|
|
|
return Interlocked.CompareExchange(ref _logGetId, -1, -1); |
|
|
|
} |
|
|
|
|
|
|
|
#endregion
|
|
|
@ -479,8 +479,7 @@ namespace LTEMvcApp.Services |
|
|
|
_isSocketReady = false; |
|
|
|
|
|
|
|
// 重置LogGet ID
|
|
|
|
var oldLogGetId = _logGetId; |
|
|
|
_logGetId = -1; |
|
|
|
var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1); |
|
|
|
_logger.LogDebug($"[{_config.Name}] 连接关闭,LogGet ID重置: {oldLogGetId} -> {_logGetId}"); |
|
|
|
|
|
|
|
if (State == ClientState.Connected) |
|
|
@ -847,14 +846,15 @@ namespace LTEMvcApp.Services |
|
|
|
} |
|
|
|
|
|
|
|
// 更新日志获取 - 只有在最后一个请求时才更新
|
|
|
|
if (msg["message_id"]?.Value<int>() == _logGetId) |
|
|
|
var currentLogGetId = Interlocked.CompareExchange(ref _logGetId, -1, -1); |
|
|
|
if (msg["message_id"]?.Value<int>() == currentLogGetId) |
|
|
|
{ |
|
|
|
_logger.LogDebug($"[{_config.Name}] 收到最后一个LogGet响应: message_id={msg["message_id"]}, _logGetId={_logGetId}, 继续获取日志"); |
|
|
|
_logger.LogDebug($"[{_config.Name}] 收到最后一个LogGet响应: message_id={msg["message_id"]}, _logGetId={currentLogGetId}, 继续获取日志"); |
|
|
|
LogGet(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
_logger.LogDebug($"[{_config.Name}] 收到LogGet响应: message_id={msg["message_id"]}, _logGetId={_logGetId}, 不是最后一个请求"); |
|
|
|
_logger.LogDebug($"[{_config.Name}] 收到LogGet响应: message_id={msg["message_id"]}, _logGetId={currentLogGetId}, 不是最后一个请求"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|