Запитання з тегом «python-asyncio»

3
Asyncio.gather vs asyncio.wait
asyncio.gatherі, asyncio.waitсхоже, мають подібне використання: у мене є маса асинхронних речей, які я хочу виконати / чекати (не обов'язково чекати, коли закінчиться перед початком наступного). Вони використовують інший синтаксис і відрізняються деякими деталями, але мені здається дуже непітонічним наявність двох функцій, які мають таке величезне перекриття у функціональності. Що я …

4
Як насправді працює асинціо?
Це питання мотивоване моїм іншим питанням: як чекати в cdef? В Інтернеті є багато статей і публікацій блогу asyncio, але всі вони дуже поверхневі. Я не зміг знайти будь-якої інформації про те, як asyncioреально реалізується і що робить введення / виведення асинхронним. Я намагався прочитати вихідний код, але це тисячі …

4
«Вогонь і забудь» асинхрон / очікування пітона
Іноді має місце якась некритична асинхронна операція, але я не хочу чекати її завершення. У реалізації програмного забезпечення Tornado ви можете "запустити і забути" асинхронну функцію, просто опустивши yieldключове слово. Я намагався розібратися, як "запустити і забути" за допомогою нового async/ awaitсинтаксису, випущеного в Python 3.5. Наприклад, спрощений фрагмент коду: …

4
багатопроцесорність проти багатопоточності проти asyncio в Python 3
Я виявив, що в Python 3.4 існує декілька різних бібліотек для багатопроцесорної обробки / потокової роботи: багатопроцесорність проти потоків проти asyncio . Але я не знаю, який із них використовувати, чи є «рекомендованим». Вони роблять одне і те ж, або відрізняються? Якщо так, який для чого використовується? Я хочу написати …

4
Відмінність між програмою та майбутнім / завданням у Python 3.5?
Скажімо, у нас є фіктивна функція: async def foo(arg): result = await some_remote_call(arg) return result.upper() Яка різниця між: import asyncio coros = [] for i in range(5): coros.append(foo(i)) loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(coros)) І: import asyncio futures = [] for i in range(5): futures.append(asyncio.ensure_future(foo(i))) loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(futures)) Примітка . Приклад …

4
asyncio.ensure_future проти BaseEventLoop.create_task проти простої програми?
Я бачив кілька основних навчальних посібників Python 3.5 про асинціо, які роблять одну і ту ж операцію в різних смаках. У цьому коді: import asyncio async def doit(i): print("Start %d" % i) await asyncio.sleep(3) print("End %d" % i) return i if __name__ == '__main__': loop = asyncio.get_event_loop() #futures = [asyncio.ensure_future(doit(i), …

5
Як встановити атрибут класу з await у __init__
Як я можу визначити клас за awaitдопомогою конструктора чи тіла класу? Наприклад, що я хочу: import asyncio # some code class Foo(object): async def __init__(self, settings): self.settings = settings self.pool = await create_pool(dsn) foo = Foo(settings) # it raises: # TypeError: __init__() should return None, not 'coroutine' або приклад з …

10
Як протестувати Python 3.4 asyncio код?
Який найкращий спосіб написати модульні тести для коду за допомогою asyncioбібліотеки Python 3.4 ? Припустимо, я хочу протестувати TCP-клієнта ( SocketConnection): import asyncio import unittest class TestSocketConnection(unittest.TestCase): def setUp(self): self.mock_server = MockServer("localhost", 1337) self.socket_connection = SocketConnection("localhost", 1337) @asyncio.coroutine def test_sends_handshake_after_connect(self): yield from self.socket_connection.connect() self.assertTrue(self.mock_server.received_handshake()) Під час запуску цього тестового випадку …

2
Як правильно створювати та запускати паралельні завдання за допомогою модуля asyncio python?
Я намагаюся правильно зрозуміти та реалізувати два одночасно запущені Taskоб'єкти, використовуючи відносно новий asyncioмодуль Python 3 . У двох словах, asyncio, здається, призначений для обробки асинхронних процесів та одночасного Taskвиконання через цикл подій. Він сприяє використанню await(застосовується в асинхронних функціях) як способу зворотного виклику для очікування та використання результату, не …

2
Як використовувати django 3.0 ORM в Jupyter Notebook, не запускаючи перевірку контексту async?
Django 3.0 додає підтримку asgi / async і разом із цим охороняє робити синхронні запити в контексті async . Одночасно IPython просто додав підтримку асинхрон / очікування верхнього рівня , яка, здається, запускає весь сеанс інтерпретації всередині циклу подій за замовчуванням. На жаль, поєднання цих двох чудових доповнень означає, що …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.