я стримлю, очень долго. нужно в несколько потоков.
пробуй спаунить самостоятельный процесс на каждый элемент, получится параллельность искаропки
Почему долго? Вернее, если долго, то тут узкое место не в чтении файла, а в записи в базу, наверное
И потом, я не понимаю, что мешает читать стрим, а потом его обрабатывать несколькими процессами
это надо пул воркеров организовать а он не может )))
Да можно без пула, просто тасками, главное следить чтобы тасок было не больше N штук
ну я кидал в бродвей чанки это одно и тоже по сути. просто изначально вопрос был о том как собирать чанки с одного файла в несколько потоков?
просто маршалинг и сохранение в базу выкидываешь из этого пида в новый порожденный пид и получается параллель
не я про другое, это понятно. “some_file” |> File.stream!() |> Stream.chunk_every(10_000) |> Enum.map(&RMQ.publish_to_payload/1) вот как-то так у меня сейчас это парсится. И дальше уже попадает в бродвей где в несколько потоках все парсится. На месте чанка объект может потерятся в таком случае.
вот тебе лучше не файл стрим а лист стрим
Обсуждают сегодня