Pyro4 для несетевого межпроцессного взаимодействия

В настоящее время я использую Pyro4 для создания демонов, которые размещают службы, которые являются просто объектами, которые можно вызывать из других объектов или скриптов, размещенных на демонах. Для инициализации объектов требуется довольно много времени, поэтому мне нужно поддерживать эти объекты в рабочем состоянии, а не просто повторно запускать скрипт, который создает их каждый раз, когда мне нужно их вызывать.

Реализация очень проста, клиентский код выполняется достаточно быстро для моих требований, а функциональность легко расширяется. Однако Pyro4 явно создан для программ Python, работающих по сети, и я просто запускаю эти демоны внутри сервера. Кажется, нет пакетов Python, которые обрабатывают как демонизацию, так и связь между демонами так, как это делает Pyro4.

Мой вопрос: подходит ли Pyro4 для моих нужд или есть альтернативный, более стандартный способ работы с этим вариантом использования?


person Michael Anslow    schedule 03.10.2017    source источник
comment
Просто комментарий, чтобы сказать, что я рад, что вам так нравится реализация с Pyro4.   -  person Irmen de Jong    schedule 03.10.2017


Ответы (1)


Многие протоколы межпроцессного взаимодействия используют «сеть» даже при работе на одной машине. «Сетевые» соединения на локальном адаптере обратной связи (IPV4-адреса 127.0.0.0/8 и IPV6::1) должны быть особенно быстрыми, поскольку они обычно вообще не проходят через физический сетевой интерфейс.

Кроме того, известно ли вам, что Pyro4 также поддерживает связь через сокеты домена Unix? Это чисто локальный системный ресурс.

В общем, фраза «Pyro4 специально создана для программ на Python, работающих по сети» не соответствует действительности. Я определенно планировал использовать Pyro4 между процессами даже на одном компьютере. Если есть что-то конкретное в Pyro4, которое, по вашему мнению, не подходит для этой цели, укажите это, чтобы его можно было улучшить!

person Irmen de Jong    schedule 03.10.2017
comment
Просто чтобы добавить к этому. Я также использовал Pyro4 для межпроцессного взаимодействия, и он отлично работал. Я рад видеть это опубликованным, потому что у меня был тот же вопрос. - person Ryan Boch; 11.12.2019