1

我正在尝试在 Python 中实现客户端-服务器架构,我有:

  • 服务器应用
  • 可以通过 API 订阅更新的客户端列表(向 /subscribe 端点发送 POST 请求)。

它工作正常。在服务器端,我有一个订阅者的 URL 列表。

主要思想是每 X 秒从服务器向所有订阅的客户端发送请求(类似于监控系统)。

我正在尝试使用线程来完成这部分:

class Monitor(threading.Thread):
    def __init__(self):
        super(Monitor, self).__init__()
        self.setDaemon(True)

    def send_notifications(self, subscribers):
        for subscriber in subscribers:
            request.post(subscriber["url"], json=subscriber["data"], timeout=0.5)

    def run(self):
        subscribers = get_subscribers()  # getting list of subscribers via API call.
        while True:
            self.send_notifications(subscribers)
            time.sleep(Y)

或多或少它有效,但我需要改进一点。预期的行为是:服务器应每 X 秒向每个订阅的客户端发送通知。如果向某个客户端发送通知失败 Y 分钟(例如 5 分钟),它应该取消订阅这个无响应的客户端。

是否有一些最佳实践?

4

0 回答 0