Сервис, который кеширует ответы от стороннего медленного и нестабильного сервиса
https://vast-eyrie-4711.herokuapp.com
Временно доступен по адресу https://zvook.bigblackbug.me
GET /from_cache?key=whatever
Returns 200 {"status":"success", "hash":""}
если ответ есть в кеше
Returns 202 {"status":""}
запрос принят("accepted") или находится в обработке("in progress")
Returns 400 {"status":"error", "error":""}
если параметр key отсутствует в запросе или ключ содержит non-ASCII символы
Сервис возвращает результат сразу.
Для кеширования используется Redis, для отправки запроса на удалённый сервис - Celery.
В соответствии с требованиями, настроенный nginx обрубит соединение с клиентом через 1с и выдаст 504.
Полученные от удалённого сервиса значения в кеше хранятся 24 часа.
Поддерживаются только ключи с ASCII символами, в противном случае будет выброшена 400 ошибка. А всё потому что удалённый сервер тоже не поддерживает unicode и пятисотит :)
Для развёртывания потребуется установленный docker-ce и docker-compose версии 1.12 и выше. На Ubuntu можно использовать скрипт deployment/install-docker.sh
docker-compose up -d --build
поднимает сервис на 8081 порту
- Контейнеризировать nginx
- Проверить, правильно ли создаётся Redis pool в celery и во view и не отвалится ли он вдруг когда-нибудь
- Написать багрепорт разработчикам удалённого сервиса о том, что у них бажат юникодовые ключи и в соответствии с ответом, переписать обработчик юникодовых ключей.