Klasse "Service"

Google Protocol RPC-Dienste werden entweder über einen Konstruktor oder über eine Factory erstellt, die keine Parameter akzeptiert. Einige Anwendungen müssen jedoch über mehrere Anforderungen einen bestimmten Zustand oder eine bestimmte Konfiguration an einen Dienst übergeben. Definieren Sie dazu Parameter für den Konstruktor des Dienstes und verwenden Sie die Klassenmethode new_factory(), um eine Factory zu erstellen, die Parameter an den Konstruktor überträgt. Beispiel:

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)

Die Übereinkunft mit einem Dienst-Handler sieht vor, dass für die Verarbeitung jeder Nutzeranforderung ein neues Dienstobjekt erstellt wird und dass bei der Erstellung keine Parameter verwendet werden. Die Factory erfüllt diese Bedingung:

new_instance = my_service_factory()
assert new_instance.state is global_state

Service wird vom Modul protorpc.remote bereitgestellt.

Klasseneigenschaften

Dienstinstanzen weisen eine einzige Eigenschaft auf:

request_state
Der mit dieser Dienstinstanz verknüpfte Anforderungszustand.

Klassenmethoden

Die Dienstklasse bietet folgende Klassenmethoden:

all_remote_methods()

Ruft alle Remote-Methoden für eine Dienstklasse ab.

Hinweis: Integrierte Methoden werden nicht im Wörterbuch der Remotemethoden aufgeführt.

Gibt ein Wörterbuch zurück, das Methodennamen Remotemethoden zuordnet.

new_factory(args, **kwargs)

Erstellt eine Factory für einen Dienst. Nützlich zur Weitergabe von Konfigurations- bzw. Zustandsobjekten an den Dienst. Nimmt beliebige Parameter und Keywords an, der zugrunde liegende Dienst darf jedoch keine weiteren Parameter in seinem Konstruktor annehmen.

Argumente
args
An den Dienstkonstruktor weiterzugebende Argumente:
**kwargs

Gibt eine Factory-Funktion zurück, die eine neue Instanz erstellt und Argumente und Keywords an den Konstruktor weiterleitet.

Instanzmethoden

Dienstinstanzen weisen die folgenden Methoden auf:

initialize_request_state(request_state)
Argumente:
request_state
Eine RequestState-Instanz.