Одновременное выполнение асинхронных функций

ratata

Новичок
Пользователь
Дек 29, 2021
37
1
8
Могу ли я как-то выполнить одновременное выполнение асинхронных функций?
Вот сами функции:
Python:
async def x_get(session, t: str):
    url = f'...={t}'
    async with session.get(url, ssl=False) as resp:
        resp_json = await resp.json(content_type=None)
        
async def x_scraper():
    item = ['fff', 'ddd']
    async with aiohttp.ClientSession() as session:
        tasks = []
        for t in item:
            task = asyncio.create_task(x_get(session, t))
            tasks.append(task)
        await asyncio.gather(*tasks)
        
async def y_scraper():
    item = ['hhh', 'ttt']
    async with aiohttp.ClientSession() as session:
        tasks = []
        for t in item:
            task = asyncio.create_task(x_get(session, t))
            tasks.append(task)
        await asyncio.gather(*tasks)

Я написал так, но выдает ошибку:
Python:
from multiprocessing import Process

p1 = Process(target=asyncio.run(x_scraper())
p1.start()
p2 = Process(target=asyncio.run(y_scraper())
p2.start()
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
971
219
43
20
Москва
Ну как минимум, у тебя не хватает закрывающих скобок
Python:
from multiprocessing import Process

p1 = Process(target=asyncio.run(x_scraper()))
p1.start()
p2 = Process(target=asyncio.run(y_scraper()))
p2.start()

Еще вроде в target надо передавать функцию, а не результат ее выполнения
 
  • Мне нравится
Реакции: ratata

ratata

Новичок
Пользователь
Дек 29, 2021
37
1
8
Ну как минимум, у тебя не хватает закрывающих скобок
Python:
from multiprocessing import Process

p1 = Process(target=asyncio.run(x_scraper()))
p1.start()
p2 = Process(target=asyncio.run(y_scraper()))
p2.start()

Еще вроде в target надо передавать функцию, а не результат ее выполнения
А как в данном случае передать в таргет функцию?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
971
219
43
20
Москва
Python:
foo(a):
    pass

t = 123
Process(lambda x=t: foo(x))
 

Форум IT Специалистов