andei papkov
Описание задачи
Вам дано трехмерное игровое поле размером 3500х3500 клеток, в котором закопаны клады на глубине от 1 до 10 этажей.
Основная задача — добыть как можно больше монет за отведенное время (см. ограничения на решение).
Вам необходимо написать приложение, упакованное в контейнер типа Docker, отвечающее требованиям задачи и умеющее делать запросы в API нашего сервера - игрового мира.
Генерация мира
Технически организаторами соревнования разработано сервер-приложение, которое работает по определенной бизнес-логике.
При генерации мира используется параметр SEED. Он определяет сколько кладов и на каком этаже будет сгенерировано, какая будет ценность каждого клада и какой этаж будет оптимальным по соотношению ценности кладов к стоимости их добычи.
Кроме того, игровой мир имитирует среду. Вы можете встретить разные ошибки, которые зависят от времени (CPU_TIME) и RPS игрового мира, и конкретно CPU_TIME и RPS на каждый ENDPOINT игрового мира. От этого зависят вероятности возникновения ошибок, и их вам нужно исследовать.
Обратите внимание, что исходный код сервера и параметр SEED во время проведения соревнования публиковаться не будут.
В этом раунде гарантированно будет:
490 000 кладов;
23 030 000 монет лежит в кладах.
я, на практике, работаю с http client, у которого есть connection pool, которому можно выставить ограничения
делая параллельные блокирующие вызовы к клиенту получаем естественное ограничение
в данном случае я, наверное, использовал бы core.async/pipeline (-async или -blocking)