Я обработал каждую строку, как показано ниже.
- Прочитайте строку из файла с помощью StreamReader.ReadLineAsync ().
- Разделите элементы и поместите их в DTO.
- Выполните некоторую обработку с помощью DTO.
- Если шаги пройдены, выполните пару вызовов API AWS S3 для каждой строки/DTO.
- Если шаги 3 и 4 пройдены, вставьте строку в PostgreSQL. таблица A.
- Если шаги 3 и 4 не увенчались успехом, вставьте строку в таблицу B PostgreSQL.
Однако, чтобы сократить время выполнения, предлагается ли использовать System.Threading.Channels для обработки строки сразу после ее чтения?И для каждых 100/1000 строк выполняйте оператор массовой вставки/копирования в базу данных.
Есть ли какие-нибудь лучшие рекомендации или подходы?
Изменить: вызовы AWS являются асинхронными, а вызовы PostgreSQL — синхронными. Построчная обработка 52 строк заняла примерно 5 минут. Ограничений на вызовы API AWS S3 нет.
Подробнее здесь: https://stackoverflow.com/questions/790 ... y-in-net-8
Мобильная версия