diff --git a/database.py b/database.py index 5f484e9..33a02ae 100755 --- a/database.py +++ b/database.py @@ -1660,27 +1660,39 @@ def update_schedule_execution_log(log_id, **kwargs): def get_schedule_execution_logs(schedule_id, limit=10): """获取定时任务执行日志""" - with db_pool.get_db() as conn: - cursor = conn.cursor() - cursor.execute(''' - SELECT * FROM schedule_execution_logs - WHERE schedule_id = ? - ORDER BY execute_time DESC - LIMIT ? - ''', (schedule_id, limit)) + try: + with db_pool.get_db() as conn: + cursor = conn.cursor() + cursor.execute(''' + SELECT * FROM schedule_execution_logs + WHERE schedule_id = ? + ORDER BY execute_time DESC + LIMIT ? + ''', (schedule_id, limit)) - # 将数据库字段映射到前端期望的字段名 - logs = [] - for row in cursor.fetchall(): - log = dict(row) - # 字段映射 - log['created_at'] = log.get('execute_time') - log['success_count'] = log.get('success_accounts', 0) - log['failed_count'] = log.get('failed_accounts', 0) - log['duration'] = log.get('duration_seconds', 0) - logs.append(log) + # 将数据库字段映射到前端期望的字段名 + logs = [] + rows = cursor.fetchall() - return logs + for row in rows: + try: + log = dict(row) + # 字段映射 + log['created_at'] = log.get('execute_time') + log['success_count'] = log.get('success_accounts', 0) + log['failed_count'] = log.get('failed_accounts', 0) + log['duration'] = log.get('duration_seconds', 0) + logs.append(log) + except Exception as e: + print(f"[数据库] 处理日志行时出错: {e}") + continue + + return logs + except Exception as e: + print(f"[数据库] 查询定时任务日志时出错: {e}") + import traceback + traceback.print_exc() + return [] # 出错时返回空列表,而不是抛出异常 def get_user_all_schedule_logs(user_id, limit=50):