我应该在烧杯会话中存储python锁定对象吗?
-
04-10-2019 - |
题
我的网站上有某个页面,我想防止同一用户连续两次访问它。为了防止这种情况,我计划创建一个锁定对象(来自Python的线程库)。但是,我需要在会议上存储它。在尝试将锁定对象存储在会话中(特别是烧杯会话)时,我应该注意什么?
解决方案
在会话(或需要序列化的其他任何地方)中存储螺纹。lock实例是一个可怕的想法,大概您会得到一个例外(因为这样的对象不能序列化,例如,它不能是 pickle
D)。流程合作序列化的传统方法取决于 文件锁定 (在目录中的“人造”文件中,例如 /tmp/locks/<username>
如果您希望锁定为每个用户,如您所示)。我相信Wikipedia条目在描述一般区域方面做得很好。如果您告诉我们您正在运行什么OS,我们可能会建议一些更具体的东西(不幸的是,我不认为为此有跨平台解决方案)。
其他提示
我只是意识到,这是一个可怕的问题,因为将锁定并将其保存到会议上采取了两个步骤,从而击败了锁的原子行动的目的。
不隶属于 StackOverflow