Service クラス

Google Protocol RPC サービスは、コンストラクタまたはパラメータを受け取らないファクトリを使用して作成されます。しかし、一部のアプリケーションでは、複数のリクエストにまたがって状態または構成をサービスに渡す必要があります。これを行うには、サービスのコンストラクタへのパラメータを定義し、new_factory() クラス メソッドを使用して、コンストラクタにパラメータを渡すファクトリを作成します。次に例を示します:

from protorpc import remote


class MyService(remote.Service):

    def __init__(self, configuration, state):
        self.configuration = configuration
        self.state = state

configuration = MyServiceConfiguration()
global_state = MyServiceState()

my_service_factory = MyService.new_factory(configuration,
                                           state=global_state)

サービス ハンドラとの取り決めでは、ユーザー リクエストを処理するたびに新しいサービス オブジェクトを作成すること、パラメータを受け取らないことが必要です。ファクトリはこの条件を満たします。

new_instance = my_service_factory()
assert new_instance.state is global_state

Serviceprotorpc.remote モジュールによって提供されます。

クラスのプロパティ

Service でインスタンス化されるプロパティは次の 1 つです:

request_state
この Service インスタンスに関連するリクエストの状態です。

クラス メソッド

Service クラスには次のクラス メソッドがあります:

all_remote_methods()

Service クラスのすべてのリモート メソッドを取得します。

注: 組み込みのメソッドは、リモート メソッドのディクショナリに表示されません。

メソッド名をリモート メソッドにマップするディクショナリを返します。

new_factory(args, **kwargs)

サービスのファクトリを作成します。 設定オブジェクトまたは状態オブジェクトをサービスに渡すのに役立ちます。任意のパラメータとキーワードを受け取りますが、基になるサービスでは、コンストラクタで他のパラメータを受け取ってはいけません。

引数
args
サービスのコンストラクタに渡す引数です。
**kwargs

新しいインスタンスを作成するファクトリ関数を返し、引数とキーワードをコンストラクタに渡します。

インスタンス メソッド

Service インスタンスには次のメソッドがあります:

initialize_request_state(request_state)
引数:
request_state
RequestState インスタンス。