Многопоточный загрузчик файлов на Golang

Цена договорная
26 января 2021, 15:55 • 10 откликов • 55 просмотров
Необходимо разработать автономный многопоточный сервис для асинхронной загрузки файлов с других серверов.

Задача:
Есть 1200 хостов, на которых расположен файл с курсами валют. Необходимо каждые 5 секунд скачивать свежий файл, сохранять его на диск и отправлять в систему очередей Beanstalk задачу на его последующую обработку.

Требования:
- Список хостов нужно забирать из Postgresql.
- Какие-то хосты будут отключаться из мониторинга, какие-то добавляться. Нужно отслеживать это переодическим опросом БД.
- Все хосты разные по скорости ответа. Какие-то отвечают за 70ms, какие-то за 15000ms. Нужно предусмотреть чтобы интервал в 5000ms выдерживался между ответами, а не запросами.
- Если скачать файл не получилось нужно отправить в очередь сообщение о временной недоступности хоста.
- Некоторые хосты кэшируют ответы, поэтому нужно анализировать etag в заголовках и не скачивать сам файл, если нет обновления.
- У каждого скачанного файла нужно вычислять хэш-сумму, чтобы не отправлять задачи в очередь по файлам, которые не обновились.

Код нужно покрыть тестами и завернуть в докер контейнер, написать документацию по использованию.

В отклике напишите пожалуйста бюджет за задачу или вашу почасовую ставку, ориентировочный срок и ваш телеграм.
Отзывы
Замечательный программист. Полностью уложился в сроки, погружался в задачу, уточнял все детали. На выходе получил рабочий продукт с читабельным кодом. Буду рад поработать еще.
4 года назад
R50 cdec1ee466d76376f4ca3354fb89f89b
Фрилансер
Все хорошо! Сотрудничеством доволен.
4 года назад