我正在尝试在 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 分钟),它应该取消订阅这个无响应的客户端。
是否有一些最佳实践?