Нотатка · Проксі
Як передавати пул проксі через Redis без часткового JSON
Спочатку хотів тримати весь стан в одному Redis key. Fetcher записав список, validator його оновив, ranker відсортував. Просто ж 🤔
А потім два worker одночасно торкнуться цього ключа — і спробуй зрозумій, чий там зараз результат.
Тому розділив конвеєр на повні snapshots:
proxy_pool:raw:v1
proxy_pool:validated:v1
proxy_pool:reserve:v1
proxy_pool:active:v1Перевірити поточний стан можна так:
./scripts/run-redis-rows.shНа лабораторному стенді зараз:
proxy_pool:raw:v1: 1
proxy_pool:validated:v1: 1
proxy_pool:reserve:v1: 1
proxy_pool:active:v1: 1
transparent-gateway:validated:v1: 1Ці числа показують, що ключі містять повні списки. Чи належать вони одному циклу — окремо звіряю через generated_at, source_generated_at і logs.
Запис теж зробив без проміжного стану: спочатку тимчасовий key, потім атомарний Redis RENAME. Читач бачить старий або новий повний JSON, а не половину нового пулу 🛡