【问题标题】:How to make a script wait for another script to finish reading a file [duplicate]如何使脚本等待另一个脚本完成读取文件[重复]
【发布时间】:2019-08-21 14:44:01
【问题描述】:

这不是在 Python 中锁定文件的重复

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

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

有什么想法吗?

我考虑过使用

    with FileLock("document.txt")

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

【问题讨论】:

  • 您的 writer(30 分钟脚本)应该替换文件而不是覆盖它。那么就不需要同步reader了。

标签: python deadlock


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2012-07-16
    相关资源
    最近更新 更多