// ================================================================================ // 手维护服务接口:监控域无表模块(在线用户/服务器监控/缓存监控) // ================================================================================ package service import ( "context" "easygoadmin/api/v1" ) // IOnlineUser 在线用户服务接口 type IOnlineUser interface { // Page 在线用户分页 Page(ctx context.Context, req *v1.OnlineUserPageReq) (res *v1.OnlineUserPageRes, err error) // Detail 在线会话详情(含令牌原文) Detail(ctx context.Context, req *v1.OnlineUserDetailReq) (res *v1.OnlineUserDetailRes, err error) // ForceLogout 强制下线 ForceLogout(ctx context.Context, req *v1.OnlineUserForceLogoutReq) (res *v1.OnlineUserForceLogoutRes, err error) // ForceLogoutUser 踢出该用户全部设备 ForceLogoutUser(ctx context.Context, req *v1.OnlineUserForceLogoutUserReq) (res *v1.OnlineUserForceLogoutUserRes, err error) } // IServerMonitor 服务器监控服务接口 type IServerMonitor interface { // Info 服务器监控信息 Info(ctx context.Context, req *v1.ServerInfoReq) (res *v1.ServerInfoRes, err error) } // ICacheMonitor 缓存监控服务接口 type ICacheMonitor interface { // Info 缓存监控信息 Info(ctx context.Context, req *v1.CacheInfoReq) (res *v1.CacheInfoRes, err error) } var ( localOnlineUser IOnlineUser localServerMonitor IServerMonitor localCacheMonitor ICacheMonitor ) // OnlineUser 获取在线用户服务实例 func OnlineUser() IOnlineUser { if localOnlineUser == nil { panic("implement not found for interface IOnlineUser, forgot register?") } return localOnlineUser } // RegisterOnlineUser 注册在线用户服务实现 func RegisterOnlineUser(i IOnlineUser) { localOnlineUser = i } // ServerMonitor 获取服务器监控服务实例 func ServerMonitor() IServerMonitor { if localServerMonitor == nil { panic("implement not found for interface IServerMonitor, forgot register?") } return localServerMonitor } // RegisterServerMonitor 注册服务器监控服务实现 func RegisterServerMonitor(i IServerMonitor) { localServerMonitor = i } // CacheMonitor 获取缓存监控服务实例 func CacheMonitor() ICacheMonitor { if localCacheMonitor == nil { panic("implement not found for interface ICacheMonitor, forgot register?") } return localCacheMonitor } // RegisterCacheMonitor 注册缓存监控服务实现 func RegisterCacheMonitor(i ICacheMonitor) { localCacheMonitor = i }