Layanan RPC Google Protocol dibuat melalui konstruktor atau factory yang tidak menggunakan parameter. Namun, beberapa aplikasi harus meneruskan beberapa status atau konfigurasi ke layanan di beberapa permintaan. Untuk melakukannya, tentukan parameter ke konstruktor layanan dan gunakan metode class new_factory() untuk membangun factory yang akan mengirimkan parameter ke konstruktor. Contoh:
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)
Kontrak dengan pengendali layanan adalah objek layanan baru dibuat untuk menangani setiap permintaan pengguna, dan konstruksinya tidak menggunakan parameter apa pun. Factory memenuhi kondisi ini:
new_instance = my_service_factory()
assert new_instance.state is global_state
Service
disediakan oleh modul protorpc.remote
.
Properti Class
Instance layanan satu properti:
- request_state
- Meminta status yang terkait dengan instance Layanan ini.
Metode Class
Class Service menyediakan metode class berikut:
- all_remote_methods()
-
Mendapatkan semua metode jarak jauh untuk class Service.
Catatan: Metode bawaan tidak muncul dalam kamus metode jarak jauh.
Menampilkan kamus yang memetakan nama metode ke metode jarak jauh.
- new_factory(args, **kwargs)
-
Membuat factory untuk layanan. Berguna untuk meneruskan objek konfigurasi atau status ke layanan. Menerima parameter dan kata kunci arbitrer, tetapi layanan dasar juga tidak boleh menerima parameter lain dalam konstruktornya.
Argumen- args
- Argumen yang akan diteruskan ke konstruktor layanan.
- **kwargs
Menampilkan fungsi factory yang membuat instance baru serta meneruskan argumen dan kata kunci ke konstruktor.
Metode Instance
Instance layanan memiliki metode berikut:
- initialize_request_state(request_state)
- Argumen:
- request_state
- Instance RequestState.