我从Luigi开始,我想知道Luigi怎么知道它不应该重新运行任务,因为它已经使用相同的参数成功运行了。我仔细阅读了文档,但没有找到答案。
假设:
Luigi是否将状态(任务实例及其结果)存储在内存中(它不使用DB)?那么,当我重新启动调度程序时,它会忘记所有内容并重新运行所有任务?
或者,Luigi是否总是为任何计划任务运行task.complete以查看是否应该运行该任务?这意味着complete
处理程序应该非常快?
或者,它以不同的方式工作吗?
感谢您的帮助!
答案 0 :(得分:1)
啊哈,在task.output中找到了这个:
任务的输出确定是否需要运行任务 - 如果输出全部存在,则认为任务已完成。子类应重写此方法以返回单个Target或Target实例列表。
所以,这意味着complete
或output.exists
应该非常快。