Я использую 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-