我是网络编程新手,但对Python来说很老。我有一个简单的吸墨程序,可以在多台客户端计算机上使用。吸墨纸有两种工作方式,它可以显示和更新数据库中的信息。为了避免显示旧数据的任何吸墨纸,如果另一个吸墨纸更新数据库中的某些数据,如何让所有吸墨纸从数据库中重新获取信息?
我宁愿避免设置一些客户端 - 服务器协议的复杂性。是否有可能创建某种形式的仅客户端协议,当需要更新其信息时,简单的刷新消息会直接传递给其他印刷品?
答案 0 :(得分:0)
你可以使用触发器。当信息更新时,发送一个信号(由您决定如何,可能只是一个udp数据包)到所有将更新其信息的吸墨纸。可以使用python编写Postgresql脚本。
答案 1 :(得分:0)
要接收消息(例如,其他海报建议的UDP包或http请求),客户端必须在客户端计算机上运行基本服务器。例如,您可以使用Python xmlrpc模块。但是,本地防火墙可能会阻止内部通信。
最简单的解决方案是,如果客户端数量适中,将频繁轮询数据库以进行更改:向绘图表添加“最后修改时间”列,并让客户端检查此字段。通过这种方式,客户可以在不浪费太多资源的情况下找出是否需要重新加载图纸。
编辑:最后一个修改字段可以由对图形进行更改的客户端主动更新,也可以由数据库触发器自动更新。