Рубрики
Без рубрики

Начать работу с Async & Await

Автор оригинала: Arun Ravindran. Вы читаете пост из серии руководств, состоящей из двух частей, о каналах Django. Часть 1 Часть 2 Asyncio Asyncio – это совместная многозадачная библиотека, доступная в Python с версии 3.6. Celery отлично подходит для выполнения параллельных задач вне процесса, но в некоторых случаях вам может потребоваться выполнить несколько задач в одном […]

Рубрики
Без рубрики

Концепции асинхронного параллелизма

Автор оригинала: Doug Hellmann. Большинство программ, использующих другие модели параллелизма, написаны линейно и полагаются на базовое управление потоками или процессами языковой среды выполнения или операционной системы для изменения контекста в зависимости от ситуации. Приложение, основанное на asyncio , требует, чтобы код приложения явно обрабатывал изменения контекста, и правильное использование методов для этого зависит от понимания […]

Рубрики
Без рубрики

Планирование вызовов обычных функций

Автор оригинала: Doug Hellmann. В дополнение к управлению сопрограммами и обратными вызовами ввода-вывода цикл событий asyncio может планировать вызовы обычных функций на основе значения таймера, хранящегося в цикле. Планирование обратного вызова “Скоро” Если время обратного вызова не имеет значения, можно использовать call_soon () для планирования вызова для следующей итерации цикла. Любые дополнительные позиционные аргументы после […]

Рубрики
Без рубрики

Asyncio – асинхронный ввод / вывод, контур событий и инструменты параллелизма

Автор оригинала: Doug Hellmann. Цель: Асинхронная структура ввода/вывода и параллелизма. Модуль ASYNCIO предоставляет инструменты для создания параллельных приложений с использованием COROTINES. В то время как модуль резьбы реализует параллелизм через прикладные потоки и многопроцессорные реализуемые параллелизм с использованием системных процессов, ASYNCIO использует однопоточный однопроцессный подход, в котором части приложения сотрудничают, чтобы явно переключательную задачу в […]

Рубрики
Без рубрики

Объединение сопрограмм с потоками и процессами

Автор оригинала: Doug Hellmann. Многие существующие библиотеки изначально не готовы к использованию с asyncio . Они могут блокировать или зависеть от функций параллелизма, недоступных в модуле. Эти библиотеки по-прежнему можно использовать в приложении, основанном на asyncio , с помощью исполнителя из concurrent.futures для выполнения кода либо в отдельном потоке, либо в отдельном процессе. Потоки Метод […]

Рубрики
Без рубрики

Примитивы синхронизации

Автор оригинала: Doug Hellmann. Хотя приложения asyncio обычно выполняются как однопоточный процесс, они по-прежнему создаются как параллельные приложения. Каждая сопрограмма или задача могут выполняться в непредсказуемом порядке, основанном на задержках и прерываниях от ввода-вывода и других внешних событий. Для поддержки безопасного параллелизма asyncio включает в себя реализации некоторых из тех же низкоуровневых примитивов, что и […]

Рубрики
Без рубрики

Отладка с помощью asyncio

Автор оригинала: Doug Hellmann. В asyncio встроено несколько полезных функций отладки. Во-первых, цикл событий использует ведение журнала для отправки сообщений о состоянии во время работы. Некоторые из них доступны, если в приложении включено ведение журнала. Другие можно включить, указав циклу выдавать больше отладочных сообщений. Вызовите set_debug () , передав логическое значение, указывающее, следует ли включать […]