- 创建项目核心文件:package.json、vite.config.js、.gitignore - 添加前后端基础依赖和开发工具配置 - 完善OpenSpec模块,包括项目文档和核心能力规格 - 配置ESLint和Prettier代码规范 - 创建基本目录结构 - 实现前端Vue3应用框架和路由 - 添加后端Express服务器和基础路由 - 编写README项目说明文档
2.9 KiB
2.9 KiB
Redis Connection Capability Specification
Overview
This specification defines the Redis connection capability for the BLS Project Console, which manages the connection between the system and the Redis server for reading logs and sending commands.
Requirements
Requirement: Redis Connection Establishment
The system SHALL establish a connection to the Redis server.
Scenario: Establishing Redis connection on server start
- WHEN the server starts
- THEN it SHALL attempt to connect to the Redis server
- AND it SHALL log the connection status
Requirement: Redis Connection Configuration
The system SHALL allow configuration of Redis connection parameters.
Scenario: Configuring Redis connection via environment variables
- WHEN the server starts with Redis environment variables set
- THEN it SHALL use those variables to configure the Redis connection
- AND it SHALL override default values
Requirement: Redis Connection Reconnection
The system SHALL automatically reconnect to Redis if the connection is lost.
Scenario: Reconnecting to Redis after connection loss
- WHEN the Redis connection is lost
- THEN the system SHALL attempt to reconnect with exponential backoff
- AND it SHALL log each reconnection attempt
- AND it SHALL notify the user when connection is restored
Requirement: Redis Connection Error Handling
The system SHALL handle Redis connection errors gracefully.
Scenario: Handling Redis connection failure
- WHEN the system fails to connect to Redis
- THEN it SHALL log the error
- AND it SHALL display an error message to the user
- AND it SHALL continue attempting to reconnect
Requirement: Redis Connection Monitoring
The system SHALL monitor the Redis connection status.
Scenario: Monitoring Redis connection status
- WHEN the Redis connection status changes
- THEN the system SHALL update the connection status in the UI
- AND it SHALL log the status change
Data Model
Redis Connection Configuration
{
"host": "string",
"port": "number",
"password": "string",
"db": "number",
"socket": {
"reconnectStrategy": "function",
"connectTimeout": "number",
"keepAlive": "number"
}
}
Redis Connection Status
{
"status": "string", // e.g., connecting, connected, disconnected, error
"lastConnectedAt": "ISO-8601 string",
"lastDisconnectedAt": "ISO-8601 string",
"error": "string" // optional error message
}
API Endpoints
GET /api/redis/status
- Description: Get Redis connection status
- Response:
{ "status": "string", "lastConnectedAt": "ISO-8601 string", "lastDisconnectedAt": "ISO-8601 string", "error": "string" // optional }
POST /api/redis/reconnect
- Description: Manually reconnect to Redis
- Response:
{ "success": true, "message": "Reconnection attempt initiated" }