跨多个进程共享的python文件

时间:2020-03-30 14:25:37

标签: python concurrency locking fcntl

我有一个连续运行的python进程,每隔1分钟从磁盘读取一个cfg文件。

run.py

while True:
 parser = configparser.ConfigParser()
 parser.read('config.ini')
 time.sleep(60)

用户可以运行第二个修改config.ini

的过程

edit.py

  def set_param(self, section, param, new_value):
        parser = configparser.ConfigParser()
        parser.read('config.ini')
        current_cfg = parser[section][param] = new_value
        with open('config.ini', 'w') as f:
            current_cfg.write(f)

现在此代码应具有2个属性:

1)run.py仅在未由edit.py编辑的情况下才读取配置文件,换句话说,它应该等待功能set_param完全执行。

2)随后对edit.py的调用不应产生冲突。仅当文件不属于先前的调用时,才应执行新的调用。

我认为我需要类似锁定机制的东西。我一直在查看https://docs.python.org/3.8/library/fcntl.html,但不确定它是否正确,我正在努力了解如何使用它。

如何解决此问题?

0 个答案:

没有答案
相关问题