"""获取当前用户总数和并发用户数(近5分钟有活跃记录的用户)""" from datetime import datetime, timedelta ns = params_kw.copy() db = DBPools() # 总用户数 sql_users = "SELECT COUNT(*) as total_users FROM users" # 并发用户数:近5分钟内在llmusage中有记录的不同用户 now = datetime.now() five_min_ago = (now - timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M:%S') today = now.strftime('%Y-%m-%d') sql_concurrent = """ SELECT COUNT(DISTINCT userid) as concurrent_users FROM llmusage WHERE use_date = ${today}$ AND use_time >= ${five_min_ago}$ """ async with db.sqlorContext('sage') as sor: user_recs = await sor.sqlExe(sql_users, {}) total_users = int(user_recs[0].get('total_users', 0)) if user_recs else 0 conc_recs = await sor.sqlExe(sql_concurrent, { 'today': today, 'five_min_ago': five_min_ago }) concurrent_users = int(conc_recs[0].get('concurrent_users', 0)) if conc_recs else 0 return { 'total_users': total_users, 'concurrent_users': concurrent_users }