Python:网络文件的并发访问(读/写)
使用Python(我使用的是v3.4),我将创建一个程序,该程序将在最多20台同时连接到同一网络的机器上运行。 这些机器将不时需要访问网络并进行一些操作(创建/删除/修改文件) 我目前的计划是:Python:网络文件的并发访问(读/写),python,database,concurrency,shelve,Python,Database,Concurrency,Shelve,使用Python(我使用的是v3.4),我将创建一个程序,该程序将在最多20台同时连接到同一网络的机器上运行。 这些机器将不时需要访问网络并进行一些操作(创建/删除/修改文件) 我目前的计划是: 网络将有一个文件夹“db” 我将使用shelve模块将我的共享数据(一个包含一些路径名和一些日志信息的少于3000个条目的简单字典)保存在此文件夹中。由于没有那么多数据,它是一个方便的模块,速度足够快 为了避免网络上的多台计算机同时进行操作(并避免冲突),计算机必须在执行任何操作之前锁定网络上的搁置文
- 网络将有一个文件夹“db”
- 我将使用shelve模块将我的共享数据(一个包含一些路径名和一些日志信息的少于3000个条目的简单字典)保存在此文件夹中。由于没有那么多数据,它是一个方便的模块,速度足够快
- 为了避免网络上的多台计算机同时进行操作(并避免冲突),计算机必须在执行任何操作之前锁定网络上的搁置文件(无论如何,它们也需要更新此文件),并且仅在操作结束时解锁(必要时更新其内容)
- 或者我不使用shelve,而是使用另一个模块来管理我的简单数据库(例如:sqlite3,但它比简单shelve模块稍微复杂一点)
- 或者我创建了一个锁机制,可以在多台机器的网络上工作(到目前为止,我还没有找到一个看起来完全可靠的模块)
- 它将主要用于Windows,但我希望解决方案是跨平台的,这样我就可以在Linux上重复使用它
- 网络文件系统可以通过标准资源管理器(在linux/windows中)通过“\Machine\Folder”等地址访问任何内容。它可以是文件服务器,也可以只是其中一台计算机上的共享文件夹李>
谢谢,多平台,锁定。您最好的选择是PortalLocker()。我们已经广泛使用了它,它是一个赢家 将涉及什么操作系统,以及什么类型的网络文件系统?您好。好问题。我在最后一段加了它