Михаил Оленин (ЧТД).
В докладе автор расскажет про библиотеку PyRO, с помощью которой можно создавать распределенные приложения. В таких приложениях объекты могут через сеть вызывать удаленные методы друг друга.
. . Введение RPC PyRO О докладе PyRO - библиотека, реализующая RPC методов объектов Доклад в виде статьи доступен в блоге http://chtd.ru/blog/pyro . . . 2
. . Введение RPC PyRO Зачем нужна параллельность? На практике возникают задачи, которые не решаются с помощью последовательного однопоточного программирования. Работа в фоне и асинхронность Распределенная работа . . . 4
. . Введение RPC PyRO threading Содержит инструменты для работы с нитями. Достоинства: Общая память Недостатки: GIL Подробнее: Загадочный GIL (Андрей Светлов) . . . 6
. . Введение RPC PyRO multiprocessing Содержит инструменты для работы с процессами. Достоинства: Настоящая параллельность Недостатки Раздельная память . . . 7
. . Введение RPC PyRO Практическое использование threading Реализация: вызов функции в отдельной нити Минимальные изменения существующего кода multiprocessing Реализация: вызов функции в отдельном процессе Требуется организация взаимодействия процессов используя связывющие объекты: Connec on, Queue Требуются существенные правки в коде . . . 8
. . Введение RPC PyRO RPC PRC (Remote Procedure Call) - механизм, позволяющий программам вызывать функции, находящиеся в другом адресном пространстве. Как правило, на другом компьютере. . . . 15
. . Введение RPC PyRO PyRO PyRO - Python Remote Objects Библиотека для создания удаленных объектов, к которым можно подключиться и вызывать методы как у обычных локальных объектов. . . . 19
. . Введение RPC PyRO Применение PyRO: пример 1 Вынесение действий, требующих продолжительного времени, но результат выполнения которых не требуется прямо сейчас. сохранение данных запись лога отправка email-ов сохранение фаилов ... . . . 30
. . Введение RPC PyRO Итого PyRO библиотека для организации RPC Объектный подход позволяет подменить объект на proxy и получить параллельность Простое и быстрое использование в существующем коде . . . 35