当前位置: 首页 > 知识库问答 >
问题:

如何使用Azkaban Python API将流添加为Azkaban作业的依赖项?

傅阿苏
2023-03-14
session = remote.Session("user@https://AZKABANURL")
workflows = session.get_workflows("FlowFProjectName")
flows = workflows[u"flows"]
flow_id = flows[0]["flowId"]

workflows = session.get_workflow_info("FlowFProjectName", flow_id)
node_id = workflows["nodes"][0]["id"]

现在我有了node_id,它是流F中最后一个作业的名称,我如何在作业a中添加流F的依赖项?是这样的吗?

jobs["A"] = {
    "type": "command", 
    "command": 'echo "Hello World"', 
    "dependencies": "F"
}

在上传到Azkaban(通过将此作业捆绑到项目中)时,执行以下操作会给我一个错误:

jobs[“a”]=Job({“type”:“command”,“command”:“echo”hello world“,”dependencies“:node_id})

azkaban.util.AzkabanError: Installation Failed.
Error found in upload. Cannot upload.
a cannot find dependency <node_id>

共有1个答案

锺功
2023-03-14

我找到了问题的答案:

  1. 调用远程流并等待它完成(在while循环中)
  2. 使用一个启动程序,使流F调用它的依赖作业。

选项1:更容易理解--使用while循环继续询问Azkaban某个特定的作业/流是否仍在运行。但是在这样做的时候,您应该让while循环运行一个小时又一个小时+检查流是否正在运行的方式是使用get_running_workflows()方法。此方法不返回流的某个实例是否仍在运行,而是只返回所述流的任何实例是否正在运行。

 类似资料:
  • npm是否有安装依赖作为对等依赖的选项,如yarn选项,而不是手动添加它例如: 感谢@Broncha,更新问题的更多说明 问题是如何向项目添加对等依赖。那就是 将依赖项添加到package.json中的“dependencies”中, 如何安装将其添加到package.json?中的“对等依赖”的依赖项

  • 我使用的是Android studio版本 在项目级分级中: 模块级别等级: 当我导入它时,它发生错误 导入此时 xml错误 错误图片 在xml中添加此标记时发生错误 为此给出解决方案!!!

  • 有一些相关的问题,但它们并没有完全回答这个问题: 在构建之前将jar添加到maven本地存储库 maven-assembly-plugin不添加系统作用域的依赖项

  • 但我拥有的所有依赖项都是从Maven repo添加的。 我已经看到了如何做到这一点,我可以将它们添加为依赖项,就在这里使用这个技术。但我把它和什么联系起来呢? 如何将JBoss模块中的库添加为Gradle依赖项? 但它不是递归工作的。它只添加了定义的文件夹,而JBoss AS7.1.1将所有拆分到模块中,有没有任何方法可以引用整个模块文件夹,而不是每个特定的文件夹? 我想做的是这样的事情,但它不能

  • 我尝试使用MaxMind的GeoIP2数据库,我已经将jar添加到我的Java构建路径中,并用Javadoc和源代码配置了它,但是当我运行这个程序时,我得到了一个NoClassDefFound错误,根据这个堆栈溢出的答案,这是因为我需要添加依赖项,但我不知道如何在eclipse中添加它们,我试图提取jar文件并将它们添加到构建路径中,但这不起作用,我在eclipse中如何做到这一点? 谢谢你的帮助

  • 我是gradle的新手,我现有的大多数项目都在ant(netbeans项目)中。 我必须为我想重用的每个项目创建gradle项目吗? 我可以在gradle项目中直接声明现有的netbean项目为依赖项吗?如果是,如何? 谢谢。