Python多进程:同步未由同一脚本生成的进程

时间:2018-12-11 20:43:48

标签: python parallel-processing multiprocess

按照主题,我试图了解是否有一种方法可以同步主/主脚本未创建的不同进程。

情况是这样的:我的python脚本每天通过Windows调度程序调度几次,有时也可以并行调度。脚本实例必须在一组共享文件上写信息,但是由于我可以同时访问那些文件,因此需要一种同步它们的方法。 我正在寻找python中的多进程模块,但在我看来,它仅处理子进程由主进程产生的场景。 我对么?你能指出我实现我所需要的策略吗?

1 个答案:

答案 0 :(得分:0)

我正面临着同样的问题,到目前为止,找到最好的解决方案(实际上我对此并不满意)是FileLock。

这是一个例子:

from filelock import FileLock

if __name__ == "__main__":
    lock_file_name = 'lockfile.lck'
    lock = FileLock(lock_file_name)
    with lock:
        print('Hi from Python script!')
        for i in range(1, 1000):
            print(f"Current value is: {i}")
        print('Python script ended!')

即使在同一时间启动脚本的多个实例,with lock:块中的代码也以排他的方式执行。