Я работаю над приложением Rails, размещенным на Heroku.
Каждый день мне нужно загружать огромный ZIP-файл (> 200 МБ), содержащий CSV со списком продуктов, атрибутами продуктов и ценами, которые я Затем необходимо распаковать и go через, чтобы обновить цены на эти продукты на моем сайте.
Первоначально я делал:
- Задание A для загрузки ZIP в
tmp
в Heroku, разархивируйте CSV в tmp
папке - Задание B, чтобы прочитать CSV, найти продукты и обновить цены в БД
Это было все в порядке, пока я не добавил несколько рабочих и динамов в свое приложение, потому что временные файлы Heroku доступны только одному динамо, поэтому файл CSV будет доступен только для дина, отвечающего за задание А. Я добавил несколько динамов и рабочих для разделения задания B в меньшие куски и ускорить весь этот процесс в целом.
В качестве альтернативы я попытался вместо этого загрузить файл в корзину S3 - но проанализировал файл CSV объемом 200 МБ Файл от S3 очень длинный (примерно 15 минут). Поэтому я подумал о том, чтобы проанализировать его и преобразовать в массив хэшей, который я затем сохраню где-нибудь, чтобы иметь возможность легко получить к нему доступ, но где я мог бы сохранить это?
Буду признателен за любые указания по этому вопросу. Вероятно, есть очевидное решение, о котором я не думал, потому что я работаю над этим слишком долго.