Практикум: идемпотентность фоновых задач и консьюмеров¶
Один скрипт, который сам запускает Redis 7 в контейнере.
uv venv --python 3.13 .venv
uv pip install --python .venv/bin/python "idempotency-kit[redis]==0.3.0" "testcontainers[redis]"
.venv/bin/python jobs_lab.py
Три сценария: воркер падает после выполнения действия, но до подтверждения задания, с ключом идемпотентности и без него; два воркера одновременно обрабатывают одно задание в двух режимах обработки уже выполняющегося запроса; ключ строится по идентификатору доставки или самого действия либо содержит недопустимый символ.