【发布时间】:2015-02-12 17:10:41
【问题描述】:
我找不到任何类似于文件锁定的东西,就像 Linux 中的某些程序用来防止多个实例运行一样。在 Python 中,我会使用 pylockfile。
我是否忽略了 Rust 中的类似功能,还是应该从头开始实现它?
我并不懒惰,只是想尽可能少地重新发明轮子。
【问题讨论】:
-
在 rustdoc 中有 code to start from。它确实说“这不应该在标准库中”。
-
我认为您可能必须从头开始实施它。 IO/OS 模块仍然在不断变化,不确定这个功能是否适合它......话虽如此,Rust 从一开始就接受了包分发,尽管 Cargo 正是出于这个原因,所以创建一个专门用于此功能的小包,并通过 crates.io 与世界分享
-
我已经有一段时间没有认真考虑文件锁定的实现了,但是那个 Python 库似乎还不够彻底。它似乎主要通过创建文件/目录并查看它们是否存在来工作,而不是依赖于操作系统设施。如果您确实重新实现文件锁定,我建议您查看其他资源以了解如何做到这一点。
-
感谢您的回复!我的意思是创建一个外部库,而不是向标准添加东西。
-
顺便说一句,如果你想创建一个守护进程,那么你可能需要考虑使用你的操作系统进程管理系统,比如 Linux 中的
systemd或 OS X 中的launchd。这样你就赢了不需要完全考虑锁。
标签: synchronization locking rust