我的网站上有某个页面,我想防止同一用户连续两次访问它。为了防止这种情况,我计划创建一个锁定对象(来自Python的线程库)。但是,我需要在会议上存储它。在尝试将锁定对象存储在会话中(特别是烧杯会话)时,我应该注意什么?

有帮助吗?

解决方案

在会话(或需要序列化的其他任何地方)中存储螺纹。lock实例是一个可怕的想法,大概您会得到一个例外(因为这样的对象不能序列化,例如,它不能是 pickleD)。流程合作序列化的传统方法取决于 文件锁定 (在目录中的“人造”文件中,例如 /tmp/locks/<username> 如果您希望锁定为每个用户,如您所示)。我相信Wikipedia条目在描述一般区域方面做得很好。如果您告诉我们您正在运行什么OS,我们可能会建议一些更具体的东西(不幸的是,我不认为为此有跨平台解决方案)。

其他提示

我只是意识到,这是一个可怕的问题,因为将锁定并将其保存到会议上采取了两个步骤,从而击败了锁的原子行动的目的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top