Django rest framework 在django rest框架中防止来自单个用户的同时请求

Django rest framework 在django rest框架中防止来自单个用户的同时请求,django-rest-framework,Django Rest Framework,用户在关键数据处理过程中意外点击两次按钮,并向web服务器发送垃圾邮件以获得更多分数,从而导致竞争状况。我正在考虑在请求处理开始时使用某种用户锁,以防止数据损坏和服务器过载。问题在于请求处理是分布在机器之间的。这违反了RESTful的概念,即在服务器上的RESTAPI调用之间保持着一种平衡;所有状态都由客户端维护。也许您可以编写代码,以便多个提交仅根据上一次通过GET检索到的内容输入值。我假设您的用户正在更新的资源被标识为他们的资源(例如,给定用户的属性)。你也可以考虑用一个202可接受的响应把

用户在关键数据处理过程中意外点击两次按钮,并向web服务器发送垃圾邮件以获得更多分数,从而导致竞争状况。我正在考虑在请求处理开始时使用某种用户锁,以防止数据损坏和服务器过载。问题在于请求处理是分布在机器之间的。

这违反了RESTful的概念,即在服务器上的RESTAPI调用之间保持着一种平衡;所有状态都由客户端维护。也许您可以编写代码,以便多个提交仅根据上一次通过GET检索到的内容输入值。我假设您的用户正在更新的资源被标识为他们的资源(例如,给定用户的属性)。你也可以考虑用一个202可接受的响应把一个队列张贴到一个队列中,然后队列被另一个进程所耗尽,它执行你喜欢的任何策略。这将需要客户端与另一个GET进行轮询以了解结果。

您可能会设置一个限制,只允许每x秒发出一个请求,这样用户就无法发送垃圾邮件按钮,我自己没有使用过它,但根据文档,它可能是您需要的

资料来源: