У меня с клиента в виде потока приходит относительно большой .csv файл (500мб). Мне нужно как-то используя потоки записать всё в БД. Но мой опыт работы с потоками ограничивается лишь считыванием и записью файлов. Вот что я пока написал, на малых файлах работает, но если закинуть 500мб то озу достигает 2.5гб и естественно завершает работу. Как я понял это из-за того что поток летит и не ждёт пока данные запишутся в бд, так как это делается по одной строке и используются ивенты readline. Вопрос заключается в том как сделать это по человечески. Я читал об обратном давлении и что можно ставить поток на паузу а потом возобновлять, но как это реализовать так и не понял, потому что то что я сделал ничего не изменило, память всё равно куда-то утекает.
https://gist.github.com/rostikowb/566b7a525676fa25...