La classe del servizio

I servizi RPC del protocollo Google vengono creati tramite un costruttore o una fabbrica che non accetta parametri. Tuttavia, alcune applicazioni devono trasferire uno stato o una configurazione a un servizio tra più richieste. A questo scopo, definisci i parametri al costruttore del servizio e utilizza il metodo della classe new_factory() per creare una fabbrica che trasmetterà i parametri al costruttore. Ad esempio:

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)

Il contratto con qualsiasi gestore di servizi prevede che venga creato un nuovo oggetto di servizio per gestire ogni richiesta dell'utente e che la costruzione non accetti parametri. La fabbrica soddisfa questa condizione:

new_instance = my_service_factory()
assert new_instance.state is global_state

Service è fornito dal modulo protorpc.remote.

Proprietà del corso

Istanze di servizio 1:

request_state
Stato della richiesta associato a questa istanza di servizio.

Metodi della classe

La classe Service fornisce i seguenti metodi di classe:

all_remote_methods()

Recupera tutti i metodi remoti per una classe di servizio.

Nota: i metodi integrati non vengono visualizzati nel dizionario dei metodi remoti.

Restituisce un dizionario che mappa i nomi dei metodi a metodi remoti.

new_fabbrica(args, **kwargs)

Crea una fabbrica per un servizio. Utile per passare oggetti di configurazione o di stato al servizio. Accetta parametri e parole chiave arbitrari, tuttavia il servizio sottostante deve accettare anche altri parametri nel relativo costruttore.

Argomenti
argomenti
Argomenti da passare al costruttore del servizio.
**kwargs

Restituisce una funzione di fabbrica che crea una nuova istanza e inoltra argomenti e parole chiave al costruttore.

Metodi di istanza

Le istanze di servizio hanno i seguenti metodi:

initialize_request_state(request_state)
Argomenti:
request_state
Un'istanza di RequestState.