Merge branch 'main-fix' of https://github.com/MaiM-with-u/MaiBot into main-fix
This commit is contained in:
@@ -54,7 +54,9 @@ def send_heartbeat(server_url, client_id):
|
|||||||
sys = platform.system()
|
sys = platform.system()
|
||||||
try:
|
try:
|
||||||
headers = {"Client-ID": client_id, "User-Agent": f"HeartbeatClient/{client_id[:8]}"}
|
headers = {"Client-ID": client_id, "User-Agent": f"HeartbeatClient/{client_id[:8]}"}
|
||||||
data = json.dumps({"system": sys})
|
data = json.dumps(
|
||||||
|
{"system": sys, "Version": global_config.MAI_VERSION},
|
||||||
|
)
|
||||||
response = requests.post(f"{server_url}/api/clients", headers=headers, data=data)
|
response = requests.post(f"{server_url}/api/clients", headers=headers, data=data)
|
||||||
|
|
||||||
if response.status_code == 201:
|
if response.status_code == 201:
|
||||||
@@ -92,9 +94,9 @@ class HeartbeatThread(threading.Thread):
|
|||||||
logger.info(f"{self.interval}秒后发送下一次心跳...")
|
logger.info(f"{self.interval}秒后发送下一次心跳...")
|
||||||
else:
|
else:
|
||||||
logger.info(f"{self.interval}秒后重试...")
|
logger.info(f"{self.interval}秒后重试...")
|
||||||
|
|
||||||
self.last_heartbeat_time = time.time()
|
self.last_heartbeat_time = time.time()
|
||||||
|
|
||||||
# 使用可中断的等待代替 sleep
|
# 使用可中断的等待代替 sleep
|
||||||
# 每秒检查一次是否应该停止或发送心跳
|
# 每秒检查一次是否应该停止或发送心跳
|
||||||
remaining_wait = self.interval
|
remaining_wait = self.interval
|
||||||
@@ -104,7 +106,7 @@ class HeartbeatThread(threading.Thread):
|
|||||||
if self.stop_event.wait(wait_time):
|
if self.stop_event.wait(wait_time):
|
||||||
break # 如果事件被设置,立即退出等待
|
break # 如果事件被设置,立即退出等待
|
||||||
remaining_wait -= wait_time
|
remaining_wait -= wait_time
|
||||||
|
|
||||||
# 检查是否由于外部原因导致间隔异常延长
|
# 检查是否由于外部原因导致间隔异常延长
|
||||||
if time.time() - self.last_heartbeat_time >= self.interval * 1.5:
|
if time.time() - self.last_heartbeat_time >= self.interval * 1.5:
|
||||||
logger.warning("检测到心跳间隔异常延长,立即发送心跳")
|
logger.warning("检测到心跳间隔异常延长,立即发送心跳")
|
||||||
|
|||||||
Reference in New Issue
Block a user