Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2023 18:24:37

Alex_Wind
Зарегистрирован: 2023-11-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помощи с использоыванием модуля asyncio.

Здравствуйте.
Нужна помощь с использованием модуля asyncio.

Исходные данные:
Программа выполняет парсинг текстовых файлов и запись данных в базу данных Mongo.

 #main.py
# Функция file_operations.get_files формирует список файлов для обработки.
# На выходе список файлов (list[str])
# файлов примерно 3500
filelist = file_operations.get_files()
	for file in filelist:
		# Из каждого файла извлекаются необходимые данные
		# На выходе словарь dict[str, list[str]]
		# В словаре с одного файла примерно 2000 позиций
		units = parser_global.parser_notam_local(file)
		# Добавляем записи в базу данных
		# в функции db_operations.add_notams_to_db(units):
		# 	перебор словаря
		# 	для каждой позиции в словаре:
		#		проверка на наличии такой записи в БД
		#		запись в БД
		db_operations.add_notams_to_db(units)

Есть необходимость использования асинхронности т.к. выполнение занимает неприлично продолжительное время. У меня нет понимания куда целесообразно вставить асинхронность. Правильно, что критические моменты это парсинг файлов и запись в БД?
Где и как грамотно реализовать асинхронность?
Может стоит переделать алгоритм выполнения? (разделить функции на более мелкие или наоборот объединить в одну)
Буду благодарен за совет, ссылку на почитать или пример кода.
Спасибо.


Отредактировано Alex_Wind (Ноя. 16, 2023 18:28:07)

Офлайн

#2 Ноя. 16, 2023 20:42:18

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Прошу помощи с использоыванием модуля asyncio.

В данном случае вам асинхронность только помешает
У вас линейная обработка
Вы совершенно не понимаете суть асинка



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Дек. 4, 2023 06:36:23

restdiscussion
Зарегистрирован: 2023-02-06
Сообщения: 6
Репутация: +  -4  -
Профиль   Отправить e-mail  

Прошу помощи с использоыванием модуля asyncio.

Может стоит переделать алгоритм выполнения?
snow rider 3d

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version