You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java客户端SDK列出所有运行中的GCP Dataflow作业?

使用Java客户端SDK列出运行中的Dataflow作业

完全可以通过Java客户端SDK列出GCP上运行中的Dataflow作业,你提到的JobsV1Beta3Client和listJobs方法是正确的方向,下面是具体的参数说明和完整代码示例:

核心参数说明

listJobs方法需要传入构建好的ListJobsRequest对象,关键参数包括:

  • parent:指定要查询的项目和区域,格式为projects/[你的项目ID]/locations/[区域],用-代替区域时表示查询所有区域的作业。
  • filter:用来筛选特定状态的作业,针对运行中的场景,过滤条件设为state=JOB_STATE_RUNNING即可;如果需要包含等待中的作业,可以写成state=JOB_STATE_RUNNING OR state=JOB_STATE_PENDING。

完整代码示例

import com.google.cloud.dataflow.v1beta3.Job;
import com.google.cloud.dataflow.v1beta3.JobsV1Beta3Client;
import com.google.cloud.dataflow.v1beta3.ListJobsRequest;
import com.google.cloud.dataflow.v1beta3.ListJobsResponse;

public class ListRunningDataflowJobs {
    public static void main(String[] args) throws Exception {
        // 替换为你的GCP项目ID
        String projectId = "your-project-id";
        String parent = String.format("projects/%s/locations/-", projectId);

        try (JobsV1Beta3Client client = JobsV1Beta3Client.create()) {
            ListJobsRequest request = ListJobsRequest.newBuilder()
                    .setParent(parent)
                    .setFilter("state=JOB_STATE_RUNNING")
                    .build();

            ListJobsResponse response = client.listJobs(request);

            // 遍历输出运行中的作业信息
            for (Job job : response.getJobsList()) {
                System.out.printf("作业ID: %s, 名称: %s, 当前状态: %s%n",
                        job.getId(), job.getName(), job.getState());
            }
        }
    }
}

注意事项

  • 确保你的应用已配置GCP认证(比如设置GOOGLE_APPLICATION_CREDENTIALS环境变量指向服务账号密钥文件),否则客户端无法正常访问Dataflow服务。
  • 如果只需要查询特定区域的作业,把parent中的-替换为具体区域(如us-central1)即可。

内容的提问来源于stack exchange,提问作者user8473984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:14:58