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