KZKY memo

自分用メモ.

Python: Manager

基本

何ができるか

Manager は別のプロセス間で共有されるデータの作成方法を提供します。マネージャオブジェクトは 共有オブジェクト を管理するサーバプロセスを制御します。他のプロセスはプロキシ経由で共有オブジェクトへアクセスすることができます。

Managerは,

  • 共有オブジェクトを管理するサーバプロセス
  • 他のプロセス(over network)はプロキシ経由で共有オブジェクトにアクセス可能

という機能を機能を提供するといえる.

serverもclientもmanager classは作るが,

  • sever側は,manager.get_server().serve_forever()
  • client側は,manager.connect()

ManagerがSyncManagerのaliasになっていて,Localで基本的な共有オブジェクトを提供しているので,自分で作成したcallable object (とか)を使わないなら,Managerを使っておけばいい.ただし,Managerは引数を取らないので,引数を指定する場合は,SyncManager.分散前提なら,BaseManagerを拡張した独自,Managerを作った方がいい.

あくまで,共有オブジェクトを管理管理するサーバであるので,中央集権的な感じだろう.

なので,pythonで中央主権的な(簡易)分散システムを作成するなら,Managerを使えばいい.

コード

Manager Sample