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