Ожидание выполнения задания в клиентской библиотеке API потока данных Java - PullRequest
0 голосов
/ 08 декабря 2018

Я использую API Cloud Dataflow с клиентской библиотекой Java для запуска шаблона 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'

Редактировать: IЗаметил, что в документации есть метод 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-

...