服務類別

Google Protocol RPC 服務是透過建構函式或是無需任何參數的 Factory 來建構。不過,有些應用程式必須將部分狀態或設定傳遞至某個服務,以因應多次要求。為了達成此目的,需將參數定義至該服務的建構函式,並使用 new_factory() 類別方法,建構可將參數傳送到建構函式的 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)

與任何服務處理常式定下的約定是,會建立新的服務物件來處理每個使用者要求,至於建構過程則不需要使用任何參數。該 Factory 可滿足以下情況:

new_instance = my_service_factory()
assert new_instance.state is global_state

Serviceprotorpc.remote 模組提供。

類別屬性

服務實例具有一項屬性:

request_state
與此服務例項相關聯的要求狀態。

類別方法

Service 類別提供下列類別方法:

all_remote_methods()

取得 Service 類別的所有遠端方法。

注意:內建方法不會出現在遠端方法的字典中。

傳回字典,將方法名稱對應到遠端方法。

new_factory(args, **kwargs)

建立服務的 Factory,以便於將設定或狀態物件傳遞給服務。可接受任何參數和關鍵字,不過其基礎服務的建構函式中不可接受其他參數。

引數
args
要傳遞至服務建構函式的引數。
**kwargs

傳回 Factory 函式,該函式會建立新的實例,並將引數和關鍵字轉遞給建構函式。

實例方法

Service 例項的方法如下:

initialize_request_state(request_state)
引數:
request_state
RequestState 例項。