Skip to content

Commit 584571a

Browse files
committed
更新英文README - 添加v2.0更新记录
1 parent ec352ee commit 584571a

1 file changed

Lines changed: 112 additions & 0 deletions

File tree

README.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,3 +345,115 @@ Potential next improvements:
345345
## License
346346

347347
No open-source license is currently declared. Without explicit permission from the repository owner, redistribution, commercial reuse, and derivative publication are not granted.
348+
349+
## v2.0.0 Update Log (2026-07-07)
350+
351+
### 🚀 New Features
352+
353+
#### Multi-Worker Architecture
354+
- **API Worker**: Independent HTTP request handling, supports horizontal scaling
355+
- **Monitor Worker**: Independent Telegram monitoring, each Worker manages 3-5 accounts
356+
- **Auto-deployment script**: `deploy-auto.sh` one-click multi-Worker deployment
357+
- **Worker status API**: `/status`, `/health` endpoints for Worker monitoring
358+
359+
#### Health Check API
360+
- `GET /api/v1/health/` - Basic health check
361+
- `GET /api/v1/health/detailed` - Detailed status (database, Redis, system, Telegram)
362+
- `GET /api/v1/health/metrics` - Performance metrics
363+
364+
#### Code Quality
365+
- **Unified error handling**: `AppException` exception system, standardized error responses
366+
- **Input validation**: Pydantic validators, prevent invalid input
367+
- **Code review**: Fixed 15 code quality issues
368+
369+
### ⚡ Performance Optimization
370+
371+
#### Dashboard API Performance Improvement
372+
373+
| API | Before | After | Improvement |
374+
|-----|--------|-------|-------------|
375+
| `/dashboard/stats` | 3.4s | 0.17ms | 20,000x |
376+
| `/dashboard/sender-ranking` | 11s | 0.2ms | 55,000x |
377+
| `/dashboard/conversation-activity` | 9s | 20ms | 450x |
378+
| Serial loading total | 15s | 0.24s | 62x |
379+
380+
#### Optimization Techniques
381+
- **Pre-computed fields**: Added `sender_count` to conversations table
382+
- **Subquery optimization**: Avoid large table JOINs
383+
- **Approximate counting**: Use `information_schema` for large table row counts
384+
- **Redis caching**: All API results cached for 60 seconds
385+
- **Virtual scrolling**: React Virtuoso for large list optimization
386+
387+
### 🐛 Bug Fixes
388+
389+
#### Critical Bugs
390+
- **Fixed `database is locked` error**: SQLite session file concurrent access conflict
391+
- **Fixed Redis connection failure returning False**: Caused TypeError crash
392+
- **Fixed worker_id=0 being ignored**: Falsy value handling error
393+
- **Fixed port collision bug**: Worker port assignment error
394+
395+
#### Feature Bugs
396+
- **Fixed pagination reset issue**: Auto-reset to page 1 when filter changes
397+
- **Fixed proxy configuration issue**: socks5 → socks5h (DNS resolution through proxy)
398+
- **Fixed Session file corruption**: Added file lock protection
399+
400+
### 🔒 Security Improvements
401+
- **APIKeyAuth middleware**: Support API key authentication
402+
- **Unified exception handling**: Prevent exposure of internal error details
403+
- **Input validation**: Prevent SQL injection and XSS attacks
404+
405+
### 📦 Deployment Improvements
406+
- **Systemd services**: Support multi-Worker independent services
407+
- **Nginx configuration**: Load balancing configuration
408+
- **Auto-deployment**: One-click deployment script
409+
410+
### 📝 Multi-Worker Deployment Guide
411+
412+
#### Auto Deployment (Recommended)
413+
414+
```bash
415+
cd backend/workers
416+
sudo bash deploy-auto.sh 2 3 # 2 API Workers, 3 Monitor Workers
417+
```
418+
419+
#### Manual Deployment
420+
421+
```bash
422+
# 1. Edit configuration
423+
vim backend/workers/config.json
424+
425+
# 2. Install services
426+
sudo cp backend/workers/tgmonitor-api-*.service /etc/systemd/system/
427+
sudo cp backend/workers/tgmonitor-monitor-*.service /etc/systemd/system/
428+
sudo systemctl daemon-reload
429+
430+
# 3. Start services
431+
sudo systemctl start tgmonitor-api-0 tgmonitor-api-1
432+
sudo systemctl start tgmonitor-monitor-0 tgmonitor-monitor-1 tgmonitor-monitor-2
433+
434+
# 4. Enable auto-start
435+
sudo systemctl enable tgmonitor-api-* tgmonitor-monitor-*
436+
```
437+
438+
#### Configuration Example
439+
440+
```json
441+
{
442+
"api_workers": 2,
443+
"monitor_workers": 3,
444+
"accounts_per_worker": 5,
445+
"worker_ports": {
446+
"api": [8000, 8001],
447+
"monitor": [8010, 8011, 8012]
448+
}
449+
}
450+
```
451+
452+
### 📊 Performance Comparison
453+
454+
| Metric | v1.x | v2.0 | Improvement |
455+
|--------|------|------|-------------|
456+
| Dashboard load time | 15s | 0.24s | 62x |
457+
| Single API response | 3-11s | 0.2ms | 5000x |
458+
| Concurrent handling | 1 Worker | N Workers | Linear scaling |
459+
| Fault isolation | None | Single Worker failure doesn't affect others | Significant |

0 commit comments

Comments
 (0)