fix: restore scheduled crawl worker #34

Merged
admin merged 2 commits from fix/restore-scheduled-worker into main 2026-08-26 15:23:47 +00:00
5 changed files with 25 additions and 8 deletions

View File

@@ -1,5 +1,9 @@
# Changelog
## 0.7.6
- Возвращён еженедельный автоматический запуск обхода сотрудников.
## 0.7.5
- Production Compose запускает только API и PostgreSQL.

View File

@@ -5,6 +5,7 @@
## Архитектура
- `api`: FastAPI, REST API, HTML-админка, MCP endpoint и healthcheck.
- `worker`: weekly scheduler, который запускает парсинг по `CRAWL_CRON`.
- `postgres`: основная БД.
Парсер использует фиксированный источник сотрудников, по умолчанию `https://miem.hse.ru/persons`. Для каждой карточки сохраняются ФИО, должности, год начала работы, контакты, идентификаторы, вкладки профиля, секции, публикации, курсы, ВКР, новости, JSON-снапшот и сжатый HTML-снапшот. Детальные публикации дополнительно нормализуются в отдельную таблицу `employee_publications`, а новости из блока «В новостях» — в `employee_news_links`. Ссылки обходятся только из меню профиля самого сотрудника (`person-menu`), например `#sci`, `#teaching`, `#main`.
@@ -21,6 +22,7 @@ cp .env.example .env
- `DATABASE_URL`: строка подключения SQLAlchemy.
- `SOURCE_URL`: список сотрудников МИЭМ.
- `CRAWL_CRON`: расписание в формате crontab, по умолчанию `0 3 * * 1`.
- `CRAWL_LIMIT`: опциональный лимит профилей для тестового запуска.
- `ADMIN_USERNAME`, `ADMIN_PASSWORD`: логин и пароль админки.
- `SESSION_SECRET`: секрет подписи cookie.
@@ -80,7 +82,7 @@ docker compose up -d --build --remove-orphans
## Парсинг
Ручной запуск доступен в админке на `Dashboard` и странице `Runs` или через REST:
Worker запускает обход по `CRAWL_CRON`. Ручной запуск также доступен в админке на `Dashboard` и странице `Runs` или через REST:
```bash
curl -X POST http://localhost:8000/api/crawl-runs --cookie "miem_admin_session=..."
@@ -138,8 +140,9 @@ curl http://localhost:8000/mcp \
```bash
docker compose logs -f api
docker compose logs -f worker
docker compose exec postgres pg_dump -U miem miem_workers > backup.sql
docker compose down
```
Версия сервиса: `0.7.5`. Админка всегда показывает версии backend и frontend в footer.
Версия сервиса: `0.7.6`. Админка всегда показывает версии backend и frontend в footer.

View File

@@ -1,3 +1,3 @@
APP_VERSION = "0.7.5"
FRONTEND_VERSION = "0.7.5"
BACKEND_VERSION = "0.7.5"
APP_VERSION = "0.7.6"
FRONTEND_VERSION = "0.7.6"
BACKEND_VERSION = "0.7.6"

View File

@@ -25,5 +25,15 @@ services:
postgres:
condition: service_healthy
worker:
build: .
command: python -m app.worker
env_file: .env
environment:
DATABASE_URL: postgresql+psycopg://${POSTGRES_USER:-miem}:${POSTGRES_PASSWORD:-miem_password}@postgres:5432/${POSTGRES_DB:-miem_workers}
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:

View File

@@ -1,6 +1,6 @@
[project]
name = "miem-workers"
version = "0.7.5"
version = "0.7.6"
description = "MIEM employees parser, admin API, and MCP server"
requires-python = ">=3.11"
dependencies = [