【发布时间】:2023-03-10 04:07:01
【问题描述】:
我正在学习 luigi,看到大部分输出是文件系统上的文件。
如果该文件存在,则 luigi 认为该任务已完成。
在我的情况下,我想在 postgres 中使用状态 DONE 更新数据库 erecord,而不是写入文件。
我想知道在 luigi 中是否有可能
【问题讨论】:
我正在学习 luigi,看到大部分输出是文件系统上的文件。
如果该文件存在,则 luigi 认为该任务已完成。
在我的情况下,我想在 postgres 中使用状态 DONE 更新数据库 erecord,而不是写入文件。
我想知道在 luigi 中是否有可能
【问题讨论】:
看看Luigi contribs。那里至少有 3 个您可能感兴趣的软件包:mssqldb、mysqldb、rdbms、sqla 和 redshift。如果您打开其中任何一个,请查找 luigi.Target 子类。
例如,在luigi.contribs.mysqldb 中有MySqlTarget。它为您提供了与您在上面讨论的功能类似的功能:任务检查“标记表”是否存在(如果不存在,此任务将创建它),然后进行选择以检查任务是否已成功执行。如果没有,它会为任务插入一个“标记”,说明它已完成。
如果您已经有一个“标记表”,您可以将此任务类子类化或通过复制其代码并自定义您需要或不需要的部分来创建类似的任务类。
【讨论】: