Size: a a a

testing_in_python

2021 February 25

ТЭ

Тачами Экстович... in testing_in_python
Тачами Экстович
Попробуй вот это:
@timeit
def with_async_wrap_sync_requests_aiohttp():
   loop = asyncio.get_event_loop()

   import aiohttp
   async def get():
       async with aiohttp.ClientSession() as session:
           async with session.get(url) as response:
               print(response.status)

   async_tasks = [loop.create_task(get()) for _ in range(count)]
   return loop.run_until_complete(asyncio.gather(*async_tasks))
async
with_async_wrap_sync_requests 11.957862138748169
with_async_wrap_sync_requests_aiohttp 0.5534532070159912

url = 'https://go.mail.ru/'
count = 100
источник

ТЭ

Тачами Экстович... in testing_in_python
Тачами Экстович
Попробуй вот это:
@timeit
def with_async_wrap_sync_requests_aiohttp():
   loop = asyncio.get_event_loop()

   import aiohttp
   async def get():
       async with aiohttp.ClientSession() as session:
           async with session.get(url) as response:
               print(response.status)

   async_tasks = [loop.create_task(get()) for _ in range(count)]
   return loop.run_until_complete(asyncio.gather(*async_tasks))
loop.set_debug(True) можно добавить еще.

By default it shows warnings for coroutines that blocks for more than 0.1 sec. It's not documented, but based on asyncio source code, looks like you can change slow_callback_duration attribute to modify this value.

Со стековерфлоу. С включенным дебагом видно, что в случае, когда оборачиваем реквестс все виснет просто, на время запроса как раз (110 - 330мс)
источник

СС

Сказочный Сникерс... in testing_in_python
Тачами Экстович
Попробуй вот это:
@timeit
def with_async_wrap_sync_requests_aiohttp():
   loop = asyncio.get_event_loop()

   import aiohttp
   async def get():
       async with aiohttp.ClientSession() as session:
           async with session.get(url) as response:
               print(response.status)

   async_tasks = [loop.create_task(get()) for _ in range(count)]
   return loop.run_until_complete(asyncio.gather(*async_tasks))
Да мне лень было на сервак ставить aiohttp, понятно что эта штука прям заточена под такое
источник

ТЭ

Тачами Экстович... in testing_in_python
Да, с requests проблема в том, что там запросы синхронно идут, и блочат все. Обертка не поможет, потому что это будет повисшей корутиной, пока синхронный код внутри не отработает.
источник

ТЭ

Тачами Экстович... in testing_in_python
Ну, или не корутиной, а таском. Или как это правильно в питоне называется.
источник

T

Tishka17 in testing_in_python
Тачами Экстович
Да, с requests проблема в том, что там запросы синхронно идут, и блочат все. Обертка не поможет, потому что это будет повисшей корутиной, пока синхронный код внутри не отработает.
Ну я так и сказал: будет просто цикл. :) Что и видно по моим замерам
источник

В

Виталий in testing_in_python
и снова я)
источник

IS

Idi Suda in testing_in_python
Ой сорян
источник

IS

Idi Suda in testing_in_python
источник

В

Виталий in testing_in_python
😂👍
источник

IS

Idi Suda in testing_in_python
Не дошло видать
источник

В

Виталий in testing_in_python
Idi Suda
Не дошло видать
Это только было отрправлено до того как ты написал
источник

В

Виталий in testing_in_python
Просто догрузило только
источник

СС

Сказочный Сникерс... in testing_in_python
Виталий
Просто догрузило только
Ты по курсу баранцева что ли пробуешь? Уж очень знакомые app и вот это вот все
источник

В

Виталий in testing_in_python
Сказочный Сникерс
Ты по курсу баранцева что ли пробуешь? Уж очень знакомые app и вот это вот все
На stackoverflow нашел
источник

В

Виталий in testing_in_python
источник

СС

Сказочный Сникерс... in testing_in_python
Омг. Сделай уже параметризованную фикстуру browser
источник

В

Виталий in testing_in_python
Сделал
источник

СС

Сказочный Сникерс... in testing_in_python
Пихай ее во все тесты, которые надо гонять на нескольких браузерах, параллельность автоматом подхватит
источник

АК

Александр Кот... in testing_in_python
или просто берем любую CI… :) и делаем разные джобы под свои браузеры
источник