55 lines
2.7 KiB
Markdown
55 lines
2.7 KiB
Markdown
# Conol Self-Healing Auto-Repair Daemon
|
||
|
||
`eni_repair_daemon.py` — непрерывный мониторинг и авто-ремонт пула аккаунтов.
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
cd C:\Users\User\Desktop\conol_autoreg
|
||
python eni_repair_daemon.py # непрерывный демон (каждые 5 мин)
|
||
python eni_repair_daemon.py --once # разовый чек + ремонт
|
||
```
|
||
|
||
Из `start.bat`: пункты **7** (демон) и **8** (разовый).
|
||
|
||
## Фазы цикла
|
||
|
||
### Phase 1: Health Check
|
||
Проверяет `POST /api/sessions` на всех аккаунтах параллельно (5 конкурентов), timeout 15s.
|
||
|
||
### Phase 2: Server-Down Detection
|
||
Если >80% не-cookie ошибок = HTTP 500 → **пропускает весь ремонт**. Это conol.ai серверная проблема, не наши куки. Логируется `server_down`. Когда сервер оживает — `server_up`.
|
||
|
||
**Отличие от per-account ошибок:**
|
||
- 1-2 аккаунта 500 = индивидуальный сбой → repair
|
||
- 80%+ аккаунтов 500 = сервер мёртв → ждать
|
||
|
||
### Phase 3: Individual Repair
|
||
Аккаунт провалил `MAX_FAIL_STREAK=3` проверок подряд:
|
||
|
||
| Ошибка | Стратегия | Инструмент |
|
||
|--------|-----------|------------|
|
||
| HTTP 401 / "unauthorized" / "cookie" | Re-login через CDP | `relogin_account()` |
|
||
| "no_cookies" (статус 0) | Re-register | `eni_conol.py reg 1` |
|
||
|
||
### Phase 4: Credit Monitoring
|
||
Баланс < 100 cr → авто-фарм квестов на этом аккаунте.
|
||
|
||
### Phase 5: Gateway Health
|
||
Если гейтвей не отвечает → `taskkill` старого + запуск `gateway.py`. До 3 попыток с паузой 30s. После успешного перезапуска — `POST /pool/reload` для подхвата изменений.
|
||
|
||
## Логи и состояние
|
||
|
||
- `eni_repair_log.jsonl` — все события (health_ok, health_fail, repair_login, repair_farm, server_down, gateway_restart, ...)
|
||
- `eni_repair_state.json` — состояние между циклами (fail-счётчики, consecutive_server_downs, время последнего цикла)
|
||
|
||
## Пороги
|
||
|
||
| Параметр | Значение | ENV override |
|
||
|----------|----------|-------------|
|
||
| Интервал проверки | 300s (5 мин) | `ENI_REPAIR_INTERVAL` |
|
||
| Низкий баланс | < 100 cr | `CREDIT_LOW_THRESHOLD` |
|
||
| Мёртвый баланс | 0 cr | `CREDIT_DEAD_THRESHOLD` |
|
||
| Попыток до ремонта | 3 | `MAX_FAIL_STREAK` |
|
||
| Попыток перезапуска GW | 3 | `GATEWAY_RESTART_ATTEMPTS` |
|