fix(bookings): добавлено явное ограничение генератора на jobs=1

- Зачем:
  - исключить нестабильные режимы генератора, в которых bookings может перестать пополняться.
  - сделать причину ошибки понятной студенту сразу при запуске команд и SQL-скриптов.
- Что:
  - добавлен precheck `bookings-check-jobs` в Makefile и подключён к `bookings-init` и `bookings-generate-day`.
  - добавлены явные проверки `bookings.jobs = 1` в `bookings/generate_next_day.sql` и `sql/src/bookings_generate_day_if_missing.sql`.
  - обновлена документация и `.env.example`: зафиксировано, что в стенде поддерживается только `BOOKINGS_JOBS=1`.
- Проверка:
  - uv run make fmt.
  - uv run make test.
  - env BOOKINGS_JOBS=2 make bookings-init.
  - env BOOKINGS_JOBS=2 make bookings-generate-day.
  - make bookings-init.
  - make bookings-generate-day.
This commit is contained in:
2026-02-28 22:00:27 +03:00
parent a10cbff906
commit ffd9585ef4
8 changed files with 28 additions and 6 deletions
+2 -1
View File
@@ -18,6 +18,7 @@
- `engine.sql`: два изменения в `engine_jobs1_sync.patch`:
- `busy()` игнорирует свой `pid`, чтобы не считать собственное подключение занятым;
- `continue()` при `jobs=1` вызывает `process_queue` синхронно (без `dblink`), иначе генерация обрывается при выходе из `psql` и данных не появляется.
- Режим эксплуатации в этом стенде: только `jobs=1` (`BOOKINGS_JOBS=1`).
- Патчи применяются автоматически в `make bookings-init`. Если что-то пошло не так, их можно накатить вручную:
```
patch -d bookings/demodb -p1 --forward < bookings/patches/install_drop_if_exists.patch
@@ -36,6 +37,6 @@
SELECT date_trunc('day', max(book_date)) + interval '1 day'
INTO v_next_day
FROM bookings.bookings;
CALL continue(v_next_day); -- или CALL continue(v_next_day, 4)
CALL continue(v_next_day, 1);
END $$;
```