Как одновременно обрабатывать большой текстовый файл в .NET?C#

Место общения программистов C#
Anonymous
Как одновременно обрабатывать большой текстовый файл в .NET?

Сообщение Anonymous »

У меня есть текстовый файл с сотнями тысяч строк, и каждая строка имеет фиксированный номер. свойств, разделенных вертикальной чертой (|).
Я обработал каждую строку, как показано ниже.
  • Прочитайте строку из файла с помощью StreamReader.ReadLineAsync ().
  • Разделите элементы и поместите их в DTO.
  • Выполните некоторую обработку с помощью DTO.
  • Если шаги пройдены, выполните пару вызовов API AWS S3 для каждой строки/DTO.
  • Если шаги 3 и 4 пройдены, вставьте строку в PostgreSQL. таблица A.
  • Если шаги 3 и 4 не увенчались успехом, вставьте строку в таблицу B PostgreSQL.
Я реализовал описанный выше процесс последовательно, строка за строкой, используя C#, .NET 8 и Dapper (для PostgreSQL 16), успешно и реализовав его как BackgroundService.
Однако, чтобы сократить время выполнения, предлагается ли использовать System.Threading.Channels для обработки строки сразу после ее чтения?И для каждых 100/1000 строк выполняйте оператор массовой вставки/копирования в базу данных.
Есть ли какие-нибудь лучшие рекомендации или подходы?

Подробнее здесь: https://stackoverflow.com/questions/790 ... tly-in-net

Вернуться в «C#»