我的网站有问题。那是:
在这种情况下没问题:
在这种情况下出现问题:
问题是,如果用户在服务器尚未完成工作时发出请求,服务器将停止该过程并且数据不再良好。
我认为我必须阻止客户端(通过显示例子的加载消息)但我想成为用户 cant 在服务器上发出请求,如果另一个treatemment仍在工作。
谢谢你的时间。答案 0 :(得分:1)
这听起来像是一个漫长的过程,用户厌倦了等待,点击浏览器中的“停止”;另一种情况是 - 用户打开另一个选项卡并再次发送相同的请求。
解决此问题的几种方法。
如果请求被中断,请使用transaction middleware来防止数据库对象被破坏。
使用celery之类的任务队列。在第一次请求时,将您的任务卸载到队列/代理。向用户发送一条消息,表明他们的请求已被接受处理。现在用户可以自由发送重复请求。如果是,您可以检查队列的状态,并拒绝重复的请求。