使用Python(我使用的是v3.4),我正在创建一个程序,该程序将在同时连接到同一网络的多达20台计算机上运行。
这些机器将不时需要访问网络并进行一些操作(创建/删除/修改文件)......
我目前的计划是:
- 网络将有一个文件夹" db"
- 我将使用shelve模块在此文件夹中拥有我的共享数据(包含一些路径名和一些日志信息的少于3,000个条目的简单字典)。由于没有那么多数据,它是一个方便的模块,足够快
- 为了避免网络上的多台机器同时进行操作(并避免冲突),机器必须在执行任何操作之前将搁置文件锁定在网络上(无论如何它们还需要更新此文件)并将解锁仅在其操作结束时(必要时更新其内容)
我遇到的问题是搁置没有方便的并发访问或锁定机制。我知道我的两种可能性是:
- 要么我不使用shelve并使用另一个模块来管理我的简单数据库(例如:sqlite3,除了它比简单的搁置模块稍微复杂一点)
- 要么我创建一个锁定机制,可以通过多台机器在网络上工作(到目前为止,我还没有找到一个看起来完全可靠的模块)。
其他要求(如果可能)是:
- 它主要用于Windows,但我希望解决方案是跨平台的,以便我可以在Linux上重复使用
- 网络文件系统将通过标准资源管理器(在linux / windows中)通过" \ Machine \ Folder"等地址访问。它可以是文件服务器,也可以是其中一台机器上的共享文件夹。
任何建议?
由于