9.23. Multiprocessing Server¶
9.23.1. SetUp¶
iris.py
:
from dataclasses import dataclass
@dataclass
class Iris:
sepal_length: float
sepal_width: float
petal_length: float
petal_width: float
species: str
def sepal_area(self):
return self.sepal_length * self.sepal_width
def petal_area(self):
return self.petal_length * self.petal_width
def total_area(self):
return self.sepal_area() + self.petal_area()
9.23.2. Server¶
Obiekt nasłuchujący na połączenia
multiprocessing-listener.py
:
import pickle
from multiprocessing.connection import Listener
from iris import Iris
ADDRESS = ('localhost', 6000)
PASSWORD = b'My voice is my password, verify me.'
listener = Listener(ADDRESS, authkey=PASSWORD)
connection = listener.accept()
while True:
payload = connection.recv()
if payload == 'close':
connection.close()
break
flower = pickle.loads(payload)
area = flower.total_area()
print(f'Area: {area}')
listener.close()
9.23.3. Assignments¶
import json
from multiprocessing.connection import Listener
ADDRESS = ('localhost', 6000)
PASSWORD = b'My voice is my password, verify me.'
def run():
listener = Listener(ADDRESS, authkey=PASSWORD)
connection = listener.accept()
while True:
payload = connection.recv()
if payload == 'close':
connection.close()
break
data = json.loads(payload)
print(data)
listener.close()