我是否需要自己处理LocalTargets的原子性?

时间:2017-03-15 15:24:24

标签: python luigi

Luigi文档描述了对目标的写作potential problems regarding atomicity。他们说这是一个常见的陷阱,应该使用最终移动到目标位置的临时目录来处理。

如果我的目标是单个文件LocalTarget,我还需要自己处理吗?

luigi.local_target模块包含atomic_file类,它似乎表明这是自动完成的,设计目标为include “atomic file system operations”。但我找不到任何文件说明LocalTarget可以安全使用。

1 个答案:

答案 0 :(得分:1)

如果你看到Luigi luigi / local_target.py类的代码LocalTarget:

def open(self, mode='r'):
    rwmode = mode.replace('b', '').replace('t', '')
    if rwmode == 'w':
        self.makedirs()
        return self.format.pipe_writer(atomic_file(self.path))

Luigi创建一个临时文件,当它关闭时,更改为最终名称。