NodeJS Проблема с огромным экспортом данных
У меня есть сценарий. В БД у меня есть таблица с огромным количеством записей (2 миллиона), и мне нужно экспортировать их в xlsx или csv.
Итак, основной подход, который я использовал, - это запуск запроса к БД и помещение данных в соответствующий файл для загрузки.
Проблемы:
- Есть тайм-аут БД, который я установил на 150 секунд, которого иногда недостаточно, и я не уверен, что расширение тайм-аута было бы хорошей идеей!
- Существует также определенный тайм-аут с экспресс-запросом, так что он в основном истек тайм-аут моего HTTP-запроса и повторных обращений (по неизвестной причине)
Поэтому в качестве решения я думаю об использовании потокового соединения с БД, и, если каким-либо образом я могу предоставить выходной поток с файлом, он должен работать.
Так что в основном мне нужна помощь со второй частью. В потоке я буду получать записи одну за другой, и в то же время я думаю о том, чтобы позволить пользователю загружать файл постепенно. (это позволит избежать тайм-аута запроса)
Я не думаю, что это уникальная проблема, но не нашел подходящих частей, чтобы собрать их вместе. Заранее спасибо!
1 ответ
Если вы видите это в своем журнале, вы запускаете запрос более одного раза? Тайм-аут вашего пользовательского интерфейса еще до того, как сервер достигнет res.end()?