如何使用Luigi持续更新目标文件?

2024-01-11

我最近开始玩Luigi,我想了解如何使用它不断地将新数据附加到现有的目标文件中。

想象一下,我每分钟都会 ping 一个 api 来检索新数据。因为一个Task仅在以下情况下运行Target尚不存在,一个简单的方法是通过当前参数来参数化输出文件datetime。这是一个简单的例子:

import luigi
import datetime

class data_download(luigi.Task):
    date = luigi.DateParameter(default = datetime.datetime.now()) 

    def requires(self):
        return []

    def output(self):
        return luigi.LocalTarget("data_test_%s.json" % self.date.strftime("%Y-%m-%d_%H:%M"))

    def run(self):
        data = download_data()
        with self.output().open('w') as out_file:
            out_file.write(data + '\n')

if __name__ == '__main__':
    luigi.run()

如果我安排这个任务每分钟运行一次,它就会执行,因为当前时间的目标文件还不存在。但它每分钟创建 60 个文件。我想做的是确保所有新数据最终都在同一个文件中最终。实现这一目标的可扩展方法是什么?有什么想法、建议欢迎留言!


你不能。作为doc https://luigi.readthedocs.io/en/stable/api/luigi.local_target.html#luigi.local_target.LocalTarget for LocalTarget says:

参数: mode (str) – 模式 r 以只读模式打开 FileSystemTarget,而 w 将以写入模式打开 FileSystemTarget。子类可以实现附加选项。

IE。仅有的r or w模式是允许的。附加选项,例如a需要延长LocalTarget班级;尽管它打破了 Luigi 任务执行所需的幂等性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Luigi持续更新目标文件? 的相关文章

随机推荐

  • R语言能否求一阶微分方程的泛解?

    R语言能否求一阶微分方程的泛解 例如 5x 6 2 y 5 5x 6 y 2 PS 这可以很容易地用手解决 即特定的解决方案是 y 1 5 5x 6 和通用的 C 5x 6 我需要了解R是否可以做到 我们可以使用R库deSolve获得 OD
  • 无法登录生产服务器

    在本地服务器上它可以工作 但是当我尝试登录生产服务器时 我收到以下消息 PHP Notice yii base ErrorException Array to string conversion 1 in var www html vend
  • 速度:iOS 使用 NSPredicate filterUsingPredicate 与 for 循环

    我需要过滤自定义对象的 NSMutableArray 并且想知道以下其中一项在速度 运行时方面是否比另一个更好 或者它们是否实际上相同 1 使用 数组filterUsingPredicate predicate or 2 使用for循环迭代
  • 如何在Python中并行处理列表? [复制]

    这个问题在这里已经有答案了 我写了这样的代码 def process data create file using data all data1 data2 data3 我想在我的所有列表上并行执行处理函数 因为它们正在创建小文件 所以我不
  • npm - EPERM mkdir:Windows 上不允许操作

    我正在使用 Node js 11 13 0 和 npm 6 0 以上 我尝试通过以下命令在 Windows 中设置 React js 应用程序 npx 创建反应应用程序新应用程序 输出如下 错误 EPERM 不允许操作 mkdir C Us
  • 非法配置:不再支持编译iOS 7之前的IB文档

    我最近更新到XCode 9 当我构建应用程序时它说 非法配置 我的 pod 文件中的一些故事板 我尝试重新创建故事板文件 但没有帮助 XCode 9 将不支持为低于 7 的 iOS 版本构建的故事板 尝试改变构建用于 in 文件检查器到更高
  • 带有默认参数的Python函数参数[重复]

    这个问题在这里已经有答案了 我是Python新手 我想定义一个函数from and to日期 如果我用一个参数调用该函数 它应该将该参数视为to日期 如果我传递两个参数 它应该分配from and to date 我定义如下 def ini
  • 从更新函数触发操作

    有一个希望很简单的问题 当我在更新函数中收到操作 A 时 我想返回一个执行某些操作的任务 然后生成操作 B 更新函数再次接收该操作 B 据我了解 从 Update 返回的任何效果都将由 startapp 执行 但似乎什么也没有发生 这是一个
  • 你能在 TypeScript 中创建嵌套类吗?

    有没有办法在 TypeScript 中嵌套类 例如 我想像这样使用它们 var foo new Foo var bar new Foo Bar 在现代 TypeScript 中 我们有类表达式 您可以使用它来创建嵌套类 例如 您可以执行以下
  • django sekizai {% addtoblock %} 标签无法正常工作

    我正在尝试实现 django sekizai 应用程序 它正在复制我添加的 js 文件 基本模板 load sekizai tags render block my js 使用此基础的模板 load sekizai tags div add
  • 如何获取 AngularJS 中可用模块的列表?

    在定义 Angular 模块时 我定义了我的依赖项 如下所示 var myModule angular module MyModuleName Dep1 Dep2 Dep3 每个依赖项都有自己的依赖项 指令 控制器等 有没有办法询问 Ang
  • 如何在网格中显示菜单 - ExtJS 5?

    我正在尝试在网格面板中显示菜单 我有一个操作列来显示一个图标 我想应用一个效果 当鼠标悬停在该图标上时 将显示一个菜单 我如何在 extjs 5 中做到这一点 我的行动栏是这样的 xtype actioncolumn width 70 it
  • Chronos 不运行作业

    我已经为每个服务使用 Docker 映像设置了 Mesos 集群 包括 Marathon 和 Chronos 我使用的 Docker 镜像如下 动物园管理员 jplock zookeeper 3 4 5 https registry hub
  • 将所有文件和文件夹从一个目录复制到另一个目录 PHP

    我有一个名为 mysourcedir 的目录 它包含一些文件和文件夹 所以我想使用 PHP 将此目录中的所有内容复制到 Linux 服务器上的其他 目标文件夹 function full copy source target if is d
  • SQL Server年份

    将 FINANCIALYEAR 声明为 varchar 30 将 FINALFINANCIALYEAR 声明为 int SELECT FINANCIALYEAR CONVERT VARCHAR YEAR GETDATE 2 CONVERT
  • 使用 MySqlDataAdapter 更新不起作用

    我正在尝试使用 MySqlDatAdapter 来更新 MySql 表 但是 该表永远不会更新 我以前这样做过 但使用的是 SQL Server 我的代码中还缺少其他特定于 MySql 的内容吗 DataTable myTable new
  • OpenMP“master”编译指示不得包含在“parallel for”编译指示内

    为什么英特尔编译器不允许我指定 openmp 中的某些操作parallel for块应该仅由主线程执行吗 如果没有这种功能 我该如何实现我想要实现的目标 我想做的是通过并行回调更新进度条 long num items computed 0
  • 如何在 emacs-ess 中从 R 内部访问 bash 环境变量

    在我的 bashrc 中 我有以下行 export SETTINGS home user settings xml 如果我在 bash 中加载 R 我可以使用Sys getenv功能 Sys getenv SETTINGS home use
  • sqlplus:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有这样的文件或目录

    请提出解决此问题的解决方案 下达命令时 sqlplus nolog 发生的错误 sqlplus error while loading shared libraries libsqlplus so cannot open shared ob
  • 如何使用Luigi持续更新目标文件?

    我最近开始玩Luigi 我想了解如何使用它不断地将新数据附加到现有的目标文件中 想象一下 我每分钟都会 ping 一个 api 来检索新数据 因为一个Task仅在以下情况下运行Target尚不存在 一个简单的方法是通过当前参数来参数化输出文