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

Я написал парсер, сделал его асинхронным, парсит очень много данных, около 11к ссылок за 20 секунд, но обработка данных и отправка сообщений занимает от 4 до 15 минут. Как можно сделать обработку в реальном времени?

async def get_data(session, symb: str):
    try:
        await bot.wait_until_ready()
        channel = bot.get_channel(891762344303140935)
        url = f'https://example.com/{symb}'
        async with session.get(url) as resp:
            resp_text = await resp.text()
            resp_dict = await resp.json()
            for result in resp_dict['results']:
                ticker = str(result['tickers']).replace("[", "").replace("]", "").replace("',", ",").replace("'", "$")
                dat = str(result['published_utc']).replace("T", " ").replace("Z", "")
                ur = result['article_url']
                if not os.path.exists('./data'):
                    pickle.dump(dat, open('data', 'wb'))
                    await channel.send(f'{dat}\n{ticker}\n{ur}')
                    print(f"{ticker}\n{dat}\n{ur}\n--------------------------------------")
                else:
                    date = pickle.load(open('data', 'rb'))
                    if dat > date:
                        pickle.dump(dat, open('data', 'wb'))
                        await channel.send(f'{dat}\n{ticker}\n{ur}')
                        print(f"{ticker}\n{dat}\n{ur}\n--------------------------------------")
            return resp_text
    except ClientConnectorError:
        pass
    except KeyError:
        pass

async def site_data():
    while True:
        async with aiohttp.ClientSession() as session:
            tasks = []
            text_file = open("nas_spis.txt", "r")
            lines = text_file.readlines()
            for g in lines:
                cat = str(g).replace("\n", "")
                task = asyncio.create_task(get_data(session, cat))
                tasks.append(task)
            await asyncio.gather(*tasks)



bot.loop.create_task(site_data())

Ответы (1 шт):

Автор решения: ganz

Вижу проблему тут

pickle.dump\load(dat, open('data', 'wb'))

которая убивает всю асинхронность вставая в очередь для записи в файл. Так же объём записи данных будет не менее 10мб (11к ссылок по 1байту как минимум), что грузит оперативку, что замедляет питон. Могу предложить использовать базы данных.

→ Ссылка