Задать вопрос
@kaveri571

Ограничие asyncio task по памяти?

Есть дамп данных размером 4 гб, дамп читаю построчно и добавляю задачи в asyncio task. Создается около 2х миллионов задач в памяти, что естественно памяти не хватает. Как ограничить asyncio task к примеру до 10 000, чтобы после выполнения их, создались новые task из дампа, то есть разбить чтение дампа на части. Задача стоит огромный дамп (который сначала подредактировать) положить в базу данных.
async def main(path, engine):
    tasks = []
    with jsonlines.open(path) as reader:
        for inx, obj in enumerate(reader, start=1):
            task = asyncio.create_task(load_today_db(engine=engine, obj=obj))
            tasks.append(task)
        await asyncio.gather(*tasks)
  • Вопрос задан
  • 424 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Задача совсем несложная, используйте очереди! https://docs.python.org/3/library/asyncio-queue.html
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 19:02
50000 руб./за проект
02 февр. 2025, в 18:10
3000 руб./за проект
02 февр. 2025, в 17:00
350 руб./в час