我有这种情况:Python多线程
用Zope/Plone和一些mine python API创建的网页。有一个网页,称之为“a”,通过python方法调用一个数据库(Postgres)并返回一些信息。在页面“a”上,你可以修改数据库数据“离线”(我打算修改不是立即写入数据库,而是在你按下“保存”并调用python API方法后的第二个时刻)。所以,想象一下这种情况:一个名为“Sam”的用户加载页面并开始修改数据。同时,名为“Sara”的用户通过页面“a”点击“保存”修改数据库。现在,Sam没有实际的数据库数据:他会推“保存”并覆盖Sara的数据更改。
我会在我的网页上实时发出提醒。我以为我可以做这样的事情:
做一个AJAX调用,这是不可阻挡的,并继续与页面呈现。 AJAX调用一个python方法创建一个无限循环的线程(在“X”条件下)。当我在数据库上写入数据时,我会调用一个函数来改变“X条件”,停止线程并返回AJAX。
此外,我不能锁定数据库,因为我必须免费访问每个想要修改我的数据库的用户。
我的问题是:如何识别python线程?我刚刚看到,从Thread继承的类上的每个方法都需要“self”作为参数。此外,当我访问“a”页面时,我必须调用该线程,这将在代码中的某处(例如在“threads”模块中),但插入位于另一个模块上。那么,我怎样才能实现我的想法?
如果有人有另外一个设想,告诉我没有任何问题:)
你的回答很好,但我想告诉用户,在某个istant中,当他打开“a”页面时,另一个用户更新数据库。然后以propoer的方式更改字段(在“a”页面) – DonCallisto
更新了我的答案,当我收到您的评论时,仍然键入最后几段。 – marr75