-
Notifications
You must be signed in to change notification settings - Fork 143
Open
1 / 21 of 2 issues completedLabels
🏠 adviceadvice to the projectadvice to the project
Description
🤪 Features description [Please make everyone to understand it]
在 swanlab 的 SDK 中,加入关于发送心跳的相关接口,在配置中多一个是否通过心跳判断实验状态的选项;后端维护每个会话的最新更新时间;如果用户开启了心跳配置,过了多长时间没有检测到心跳更新,直接修改相关的实验状态;
👍 What problem does this feature solve
用户进程运行过程中崩溃,或者用户kill掉进程时,没有机会做一些额外的代码处理,向服务端传递消息,导致可能用户进程已经结束了,网页上还是显示实验正在Running,这种状态不一致会给用户带来困扰。
👾 What does the proposed API look like
class HeartbeatSDK:
def __init__(self, api_key: str):
# 无后台线程的心跳SDK
def _register_session(self):
# 注册新会话到后端
def set_heartbeat(self):
# 设置心跳参数
def default_heartbeat(self):
# 默认心跳实现
def check_heartbeat(self):
# 检查并发送心跳
def close(self):
# 关闭会话
🚑 Any additional [like screenshots]
为了防止给用户造成困扰,SDK不使用背景线程,二十把发送心跳的行为交给用户,用户如果配置了心跳检测,就有义务每隔一定时间 发送一次 心跳,如果用户很长时间没有发送心跳以及给服务器更新数据,服务端可能会导致误判,将Running 的程序变成crush;
或者有没有更好的保证swanlab 客户端和 服务端状态一致性的方法,都可以探讨,这里给出一个基于心跳的实现方案。
SAKURA-CAT and xinhaixiangyunpiao
Sub-issues
Metadata
Metadata
Assignees
Labels
🏠 adviceadvice to the projectadvice to the project