Описание тега python-asyncio

Этот тег должен использоваться для пакета asyncio Python, который предоставляет механизмы для написания однопоточного параллельного кода. Пакет asyncio предоставляет асинхронный ввод-вывод, цикл событий, сопрограммы и задачи, начиная с Python 3.4.
1 ответ

Получение asyncio для запуска функции по порядку (Python 3)

Вот простой пример использования asyncio распечатать цифры от 0 до 9. Проблема: иногда код печатает числа от 0 до 7, затем печатает 9, а затем 8. Особенно, когда вы устанавливаете ThreadPoolExecutor на меньшее число, например 4 или 5. 0 1 2 3 4 5 6 …
1 ответ

Плюсы и минусы использования return (yield from some_function())

Я часто вижу код, подобный следующему (что похоже на примеры в документах aiohttp). @asyncio.coroutine def init(loop): srv = yield from loop.create_server(web.Application().make_handler(), '0.0.0.0', 8080) return srv Есть ли какие-либо преимущества …
09 июл '15 в 04:42
0 ответов

Asyncio обработка исключений, можно не собирать исключения?

У меня есть код, который делает некоторые вызовы API с asyncio а также aiohttp, Для некоторых URL asyncio вызовет исключение, поэтому я разрешаю ему вернуть его (с asyncio.gather(return_exceptions = True)), поэтому он не прерывает цикл событий. Можн…
1 ответ

Не удается передать ожидаемое asyncio.run_coroutine_threadsafe

Я заметил, что asyncio.run_coroutine_threadsafe Функция не принимает общие ожидаемые объекты, и я не понимаю причину этого ограничения. соблюдать import asyncio async def native_coro(): return @asyncio.coroutine def generator_based_coro(): return cl…
02 сен '18 в 19:38
0 ответов

Асинхронный цикл не закроется

Я выполняю следующий асинхронный цикл, и когда я пытаюсь его закрыть, выдается ошибка RuntimeError: Невозможно закрыть работающий цикл событий. Может кто-нибудь объяснить, как правильно выйти из цикла. Я верю, что это может быть цикл, но я не уверен…
06 дек '17 в 00:45
1 ответ

Asyncio Фатальная ошибка: сбой вызова protocol.data_received()

Когда клиент отправляет большое сообщение ~5300 байт, asyncio получает 2917-2923 байт, а затем выдает эту ошибку.Python 3.7. Неполученное сообщение заканчивается так {"Деталь":4,"активный" ложь "пит":2,"turn_touch":0,"damaged_in_turn":0},{"деталь":7…
08 сен '18 в 16:07
1 ответ

Что не так с этим асинхронным кодом aiohttp?

Для следующего кода, использующего aiohttp: async def send(self, msg, url): async with aiohttp.ClientSession() as session: async with session.post(url, data=msg) as response: self._msg = response.read() async def recv(self): return await self._msg Э…
13 сен '17 в 23:55
1 ответ

Как идиоматически завершить операцию Asyncio в Python

Я работаю над кодом, где у меня есть длинная команда оболочки, чей вывод отправляется на диск. Эта команда сгенерирует сотни ГБ на файл. Я успешно написал код, который вызывает эту команду асинхронно и успешно возвращает управление (ожидает) для ее …
29 апр '17 в 19:28
1 ответ

Может выполнять только запросы GET в тесте Tornado

Я пытаюсь протестировать обработчик запросов Tornado, который использует asyncio и новый async def синтаксис. GET запросы, кажется, работают, но другие запросы терпят неудачу. import asyncio import tornado.platform.asyncio as tasyncio from tornado i…
1 ответ

Почему loop.run_forever() блокирует мой основной поток?

Во время обучения asyncio я пробовал этот код: import asyncio from asyncio.coroutines import coroutine @coroutine def coro(): counter: int = 0 while True: print("Executed" + str(counter)) counter += 1 yield loop = asyncio.get_event_loop() loop.run_u…
26 апр '18 в 14:07
1 ответ

Ошибка при получении данных с помощью Web Socket Client API

Я пытаюсь установить соединение с помощью Web-сокета Client API. Для установления соединения необходимо передать cookie "Play Session" для проверки пользователя. Ниже приведен мой код: async def streaming_data(url, play_session): try: async with web…
09 май '18 в 10:58
1 ответ

await вызывает SyntaxError, когда вызываемая функция имеет ключевое слово async: Python

У меня есть функция с async Ключевое слово в отдельном скрипте, это: async def search_gifs(self, query:str, limit:int = 25, offset:int = 0, rating: rating = rating.G, lang:language = None): if language == None: lang_to_use = self.lang result = await…
01 ноя '18 в 22:57
2 ответа

Как использовать скрипт Python для размещения, а затем посетить сервер, не дожидаясь возврата

Я пишу сценарий, который создает HTML-файл, а затем нужно будет разместить его, посетить локальный хост и сделать снимок экрана. Я могу заставить его делать все эти вещи, но единственная проблема в том, что он не будет пытаться сделать снимок экрана…
18 июл '18 в 00:12
1 ответ

Несколько асинхронных контекстных менеджеров

Можно ли объединить асинхронные контекстные менеджеры в python? Что-то похожее asyncio.gather, но может использоваться с контекстными менеджерами. Что-то вроде этого: async def foo(): async with asyncio.gather_cm(start_vm(), start_vm()) as vm1, vm2:…
29 окт '18 в 17:10
1 ответ

Попытка реализовать 2 "потока" с помощью модуля `asyncio`

Я поиграл с потоками раньше в Python, но решил дать asyncio Попробуйте модуль, тем более что вы можете отменить запущенное задание, которое показалось приятной деталью. Однако по какой-то причине я не могу обернуть голову вокруг этого. Вот что я хот…
19 мар '16 в 13:47
1 ответ

Как работает модуль asyncio, почему мой обновленный образец работает синхронно?

Я попробовал следующий код в Python 3.6 для asyncio: Пример 1: import asyncio import time async def hello(): print('hello') await asyncio.sleep(1) print('hello again') tasks=[hello(),hello()] loop=asyncio.get_event_loop() loop.run_until_complete(asy…
26 июл '17 в 07:11
1 ответ

Обработка клавиатурных прерываний в асинхронном режиме zmq

Я делаю сервер ZeroMQ в pyzmq с помощью asyncio, Я пытаюсь изящно справиться с остановкой сервера, но документации по асинхронному модулю очень мало, и, похоже, нет простого способа справиться с остановкой текущего опроса / ожидания. Остановка цикла…
18 авг '16 в 13:20
3 ответа

Использование asyncio для запуска функции в начале (00 секунд) каждой минуты

Я пытаюсь запустить несколько функций одновременно (приблизительно или курс) с различными параметрами и повторять это в начале каждой минуты. Мне удалось получить asyncio Пример запуска, где я получаю функцию callback запускать в определенное время …
28 фев '18 в 17:31
2 ответа

Как я могу отменить задание asyncio до окончания модульного теста?

Я пытаюсь провести модульное тестирование асинхронного сервера сокетов и использую pytest-asyncio сделать Pytest совместимым с базой асинхронного кода. После запуска сервер всегда готов отправить ответ через цикл while и, вероятно, проводит большую …
22 мар '18 в 22:07
2 ответа

Python asyncio, можно ожидать / выдать весь myFunction()

Я написал библиотеку объектов, многие из которых делают вызовы HTTP / IO. Я рассчитывал перейти на asyncio из-за накладных расходов на монтирование, но я не хочу переписывать основной код. Я надеялся обернуть asyncio вокруг моего кода, чтобы выполня…
01 апр '17 в 21:31