Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah anda boleh melaksanakan penyiaran acara pelayan ke pelanggan dalam gRPC menggunakan pendekatan tinjauan panjang?
Menyiarkan Acara dalam gRPC daripada Pelayan kepada Pelanggan
Apabila membuat aplikasi yang melibatkan berbilang pelanggan yang menyambung ke pelayan, selalunya perlu menyiarkan acara ke semua pelanggan yang berkaitan. Dalam gRPC, terdapat beberapa pendekatan untuk mencapai matlamat ini.
Satu pilihan untuk dipertimbangkan ialah menggunakan pendekatan tinjauan panjang. Ini melibatkan meminta pelanggan meninjau pelayan secara berkala untuk mendapatkan kemas kini. Apabila peristiwa berlaku, pelayan memberitahu semua pelanggan yang disambungkan, mencetuskan panggilan undian mereka untuk kembali dengan maklumat baharu.
Untuk melaksanakan pendekatan tinjauan panjang dalam Python, pertimbangkan kod berikut (pelaksanaan yang serupa mungkin dalam bahasa lain seperti Go):
<code class="python"># SERVER class UpdaterServer(UpdaterServicer): def __init__(self): self.condition = threading.Condition() self.updates = [] def post_update(self, update): with self.condition: self.updates.append(updates) self.condition.notify_all() def GetUpdates(self, req, context): with self.condition: while self.updates[req.last_received_update + 1:] == []: self.condition.wait() new_updates = self.updates[req.last_received_update + 1:] response = GetUpdatesResponse() for update in new_updates: response.updates.add().CopyFrom(update) response.update_index = req.last_received_update + len(new_updates) return response # SEPARATE THREAD IN CLIENT request = GetUpdatesRequest() request.last_received_update = -1 while True: stub = UpdaterStub(channel) try: response = stub.GetUpdates(request, timeout=60*10) handle_updates(response.updates) request.last_received_update = response.update_index except grpc.FutureTimeoutError: pass</code>
Dalam contoh ini:
Menggunakan pendekatan tinjauan panjang memastikan semua pelanggan yang berkaitan menerima acara siaran dan menyediakan cara yang boleh dipercayai untuk menyampaikan kemas kini kepada berbilang pihak.
Atas ialah kandungan terperinci Bagaimanakah anda boleh melaksanakan penyiaran acara pelayan ke pelanggan dalam gRPC menggunakan pendekatan tinjauan panjang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!