服务器类设计为制作主从服务器节点

2024-09-27 07:30:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个设计问题。 我做了一个酒店预订服务器类,它有“预订房间”、“取消预订”、“列出房间”、“获取用户预订”等功能,现在我想让这个服务器能够连接到其他服务器,这样我就可以创建一个主服务器和多个从属服务器。例如,当我列出房间的清单时,我会从主人和奴隶那里得到房间的清单。或者当我“获取用户预订”时,我从所有服务器获取预订。你知道吗

所以我想我将创建一个类来容纳主服务器和从服务器,并调用所有这些服务器上的函数:

class Master(object):
    def __init__(self):
        local = HotelServer()
        self.slaves = [local]

    def add_slaves(self, hotel_server):
        self.slaves.append(hotel_server)

我将使Master类具有来自服务器的所有函数

def get_user_reservations(self, user):
    result = []
    for slave in self.slaves:
        result += slave.get_user_reservations(user)
    return result

def list_of_rooms(self, user):
    result = []
    for slave in self.slaves:
        result += slave.list_of_rooms(user)
    return result

好主意吗? 有没有什么模式来做这种节点网络服务器?你知道吗

接下来的事情是,大多数函数将是相似的,所以我可以做一些类似的事情吗

class Master(object):
    def __init__(self):
        local = HotelServer()
        self.slaves = [local]

        for f_name, f_content in HotelServer.__dict__.items():
            if is_function(f_name) and is_public_method(f_name):
                def function(*args):
                    result = []
                    for slave in self.slaves:
                        result += slave.f_name(*args)
                    return result

                setattr(self, f_name, function)

所以它会从HotelServer获取每个方法,并在每个从服务器上使用这个方法?你知道吗


Tags: 函数nameinselfmaster服务器forlocal

热门问题