等待Java Dataflow API客户端库中的作业执行

时间:2018-12-07 22:12:40

标签: java google-cloud-platform google-cloud-dataflow

我正在将Cloud Dataflow API与Jav​​a Client Library一起使用来启动Dataflow模板。我想知道何时启动的作业的状态为JOB_STATE_DONE。尽管在node.js中使用回调很容易做到这一点,但我确实确实需要在Java中做到这一点,但是很难找到如何做到这一点的例子。我也不擅长事件驱动的编程。

Node.js代码:

var {google} = require('googleapis');

exports.runJob= (req, res) => {

  google.auth.getApplicationDefault(function (err, authClient, projectId) {
  if (err) {
    throw err;
  }

  const dataflow = google.dataflow({ version: 'v1b3', auth: authClient });

  dataflow.projects.templates.launch({
    projectId: 'xxxxx',
    gcsPath: 'gs://xxxx',    
    resource: {
      parameters: {
      },
      environment: {
        tempLocation: 'gs://xxx'
      },
    }
    }, function(err, response) {
     if (err) {
       console.error("Errorw: ", err);
     }
     console.log("Job executed: ", response);
     res.send('200');
    })
  });
};

依赖性:

compile group: 'com.google.apis', name: 'google-api-services-dataflow', version: 'v1b3-rev266-1.25.0'

编辑: 我注意到文档(下面的链接)中有一个setCallback(String)方法,但是我仍然不知道如何使用它。

https://developers.google.com/resources/api-libraries/documentation/dataflow/v1b3/java/latest/com/google/api/services/dataflow/Dataflow.Projects.Templates.Launch.html#setCallback-java.lang.String-

0 个答案:

没有答案