feature: воркер удаляет профили, не использованные PROFILE_TTL_DAYS дней (#20)
Отметка последнего использования — mtime файла в профиле, ставится при открытии и закрытии окна. Очистка при старте воркера и раз в час; профили с открытым окном (на этом воркере или по ключу сессии в Redis) не трогаются. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1075267d27
commit
4c8394eb4c
6 files changed
+97
-8
No files matched your search
+4
-1
@@ -52,7 +52,9 @@ API доступно на `http://localhost:8000`.
|
||||
- `extra/user_data_dir/<session_id>` — профили браузера (cookies, local storage, fingerprint) по `session_id`;
|
||||
- `extra/geoip_cache.json` — кэш геолокации прокси.
|
||||
|
||||
Профили со временем накапливаются — чистить вручную:
|
||||
Воркер удаляет профили, которыми не пользовались `PROFILE_TTL_DAYS` дней (по умолчанию 7): при старте и затем раз
|
||||
в час. Профиль с открытым окном не трогается. Клиент, вернувшийся позже, получает новый профиль и заново проходит
|
||||
антибот. Удалить все профили вручную:
|
||||
|
||||
```bash
|
||||
docker compose exec worker sh -c 'rm -rf /app/extra/user_data_dir/*'
|
||||
@@ -78,6 +80,7 @@ docker compose exec worker sh -c 'rm -rf /app/extra/user_data_dir/*'
|
||||
| `WORKER_THREADS` | `2 × BROWSER_SLOTS` | worker: потоков dramatiq |
|
||||
| `WORKER_ID` | hostname | worker: имя воркера и его персональной очереди |
|
||||
| `RESULT_TTL_HOURS` | `24` | сколько хранится результат задачи |
|
||||
| `PROFILE_TTL_DAYS` | `7` | worker: через сколько дней без использования удаляется профиль браузера |
|
||||
| `V1_QUEUE_WAIT` | `30` | api: сколько `/v1/solve` ждёт, пока воркер возьмёт задачу; дальше `503` |
|
||||
| `NO_SLOTS_RETRY_AFTER` | `5` | api: значение `Retry-After` (с) в ответе `503` |
|
||||
| `RABBITMQ_URL` | `amqp://guest:guest@localhost:5672/` | api, worker; в compose задаётся сам |
|
||||
|
||||
Reference in new issue
Block a user