使用Java SDK检查数据流作业(异步)状态

使用Java SDK检查数据流作业(异步)状态,java,google-cloud-dataflow,Java,Google Cloud Dataflow,根据数据流,在云中运行数据流管道/作业有两种方式: 同步(阻塞DataFlowPipelineRunner) 异步(DataflowPipelineRunner) 当使用synchronous时,它当然会在作业完成时阻塞并返回PipelineResult。那很好 但是如果我想在作业异步运行时检查作业的状态,该怎么办?我想: 异步运行作业,即使用DataflowPipelineRunner 轮询作业的状态,并检查它已运行多长时间 如果它运行时间太长,则提高alaram 使用gcloud命令行工具轮

根据数据流,在云中运行数据流管道/作业有两种方式:

  • 同步(
    阻塞DataFlowPipelineRunner
  • 异步(
    DataflowPipelineRunner
  • 当使用synchronous时,它当然会在作业完成时阻塞并返回
    PipelineResult
    。那很好

    但是如果我想在作业异步运行时检查作业的状态,该怎么办?我想:

  • 异步运行作业,即使用
    DataflowPipelineRunner
  • 轮询作业的状态,并检查它已运行多长时间
  • 如果它运行时间太长,则提高alaram
  • 使用
    gcloud
    命令行工具轮询。但是,如何通过JavaSDK(RESTAPI)编程实现这一点?我看不出有什么方法可以促进这一点


    这样做的动机是,我们有一个工作挂起,我们没有意识到,直到11小时后,它被启动。通常需要2小时。

    您可以使用与
    BlockingDataflowPipelineRunner
    相同的API来完成此操作


    该方法返回一个。该方法将允许您检查作业的当前状态。您还可以通过查询聚合器。(BlockingDataflowPipelineRunner使用便利方法而不是轮询本身)

    我只能获取状态,例如运行、完成等吗。?或者也可以使用命令行gcloud工具获取更多信息,如创建时间、作业名称等。