有没有办法阻止Django的观点同时服务多个请求?

问题描述:

我有一个django应用程序,我正在使用其中一个视图从本地文件系统获取数据并解析它并将其添加到我的数据库。现在的事情是,我想限制这个视图同时处理多个请求,我希望他们顺序地被服务。或者当一个请求已经被服务时,阻止新的请求。有没有办法实现它?有没有办法阻止Django的观点同时服务多个请求?

你需要某种互斥体。既然你的操作已经涉及到文件系统,也许你可以使用一个文件作为互斥体。例如,在操作开始时,检查特定文件是否存在于特定位置;如果是,返回一个错误,但如果没有,创建它并继续,在操作结束时删除它(确保在出现任何错误的情况下也删除它)。

这里是Python的功能和模块的链接支持线程间的锁:

https://docs.python.org/3/library/asyncio-sync.html

有在页面上一些简单的例子。