首页 > 解决方案 > 如何使脚本等待另一个脚本完成读取文件

问题描述

这不是 Locking a file in Python 的重复

我有两个脚本,一个每 30 分钟运行一次,另一个每分钟运行一次。他们都使用同一个文件来做一些事情。

在某些时候,他们每 30 分钟尝试同时访问同一个文件并损坏该文件。我正在考虑使用等待。但它们是两个独立的脚本,我不确定这是否可能。

任何想法?

我想过使用

    with FileLock("document.txt")

出现的问题是;如果 script-1 获得了 "document.txt" 的锁,那么 script-2 想要访问 document.txt,它会等待 script-1 完成吗?还是会跳过那行代码?因为第二个不是一个选项?还。获得锁后,如何在不再需要时将其删除?

标签: pythondeadlock

解决方案


完成此操作的最简单方法之一(如果您对文件目录具有写入权限)是创建一个附加文件(如 filename.lck)以指出某个脚本正在处理该文件。显然,一旦脚本完成了对该文件的处理,就需要删除该锁定文件。

但老实说,如果 Python 中没有预见到这样的锁定机制,我会感到非常惊讶。您究竟如何打开和关闭上述文件?也许某些参数已经负责锁定。


推荐阅读