我正在使用SQLAlchemy开发基于Pyramid的Intranet Web应用程序。
最终可能(将)2个用户将编辑相同的记录。如何处理通知稍后开始编辑的用户要求第一个用户编辑特定记录的要求?
答案 0 :(得分:3)
调查使用服务器发送事件(SSE)而不是websockets。金字塔本身可以在不经常消耗线程的情况下回答这些请求。除了IE之外,大多数浏览器都支持SSE,并且可能存在允许它工作的填充程序。
这是一个实现SSE事件流的Pyramid视图:
https://github.com/Pylons/substanced/blob/master/substanced/audit/views.py#L49
答案 1 :(得分:0)
您需要一个包含当前编辑器,record_id和timeout的表。第一个编辑器要求每个POST请求编辑一条记录,并在此表中添加一个新行,并且合理的超时时间为5分钟。第一个编辑得到一个" ok"作为回报。对于第二个编辑器,您可以找到表中record_id的匹配项,查看超时时间,如果没有超时,则会出现错误""回复帖子请求。在第二个POST请求中,编辑器发送它的更改。你查看表格,如果他是编辑并发送"更改"或"拒绝"相应