Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 28, 2011 03:20:51

xtesterx
От:
Зарегистрирован: 2011-10-20
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Singleton для нескольких процессов

Приветствую.
Имеется некий объект, выполняющий роль объекта-одиночки (паттерн Singleton), который должен быть доступным для всех порождённых классов процессов (именно процессов, которые наследуются от multiprocessing.Process) и раздавать какие-либо данные (например выборки из БД и т.д.)
Собственно, как можно добиться действительно только одного объекта, который могут совместно использовать порождённые подпроцессы (и как они должны к нему обращаться, то есть, получать доступ к этому объекту и вызывать его методы), если допустим, что сам объект-провайдер данных (наш синглтон), создаётся в главном потоке (в принципе, не суть важно. где он будет создаваться). Причём, в данном случае, просто очередь multiprocessing.Queue()/JoinableQueue() не подойдут, так как пораждённый процесс сам должен решать, когда ему обратиться к этому объекту-провайдеру одиночке за новой порцией данных.

Спасибо!

зы: синхронизация в самом синглтоне - это само-собой, не понятно как обеспечить его уникальность и доступность для всех подпроцессов, как к объекту



Отредактировано (Окт. 28, 2011 03:23:20)

Офлайн

#2 Окт. 28, 2011 06:15:19

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Singleton для нескольких процессов

xtesterx
Приветствую.
Имеется некий объект, выполняющий роль объекта-одиночки (паттерн Singleton), который должен быть доступным для всех порождённых классов процессов (именно процессов, которые наследуются от multiprocessing.Process) и раздавать какие-либо данные (например выборки из БД и т.д.)
Может запустить его в отдельном процессе, а общаться через IPC, например через сокет?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Окт. 28, 2011 11:05:25

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Singleton для нескольких процессов

Офлайн

#4 Окт. 28, 2011 13:13:17

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

Singleton для нескольких процессов

Для обмена данными между процессами можно использовать http://rpyc.wikidot.com/tutorial



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version