Python. Асинхронная обработка данных

Рейтинг: 0Ответов: 1Опубликовано: 02.06.2023

помогите с таким вопросом. У меня есть некоторая функция, принимающая на вход индекс записи в БД. Эта функция достает запись из БД и обрабатывает её. Мне надо обработать все данные из базы, грубо говоря:

for i in range(10 ** 6):
    some_f(i)

Вопрос: как правильно реализовать это с помощью асинхронного программирования? Есть ли другой способ ускорить процесс?

Все данные не поместятся в память, а также индексы не обязательно будут идти по порядку, как в примере.

Ответы

▲ 1Принят

Кажется, самый просто вариант в вашем случае - работать батчами. То есть, если все записи не помещаются в памяти, то доставать, например, по 10 000 записей за раз.

Асинхронность тут не особо поможет, т.к. если у вас памяти в каждый момент времени хватает только на обработку условных 10000 записей, то всё равно лучше доставать их из базы одной пачкой, чем асинхронно в 10000 отдельных запросов.