我正在将Cloud Dataflow API与Java 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)方法,但是我仍然不知道如何使用它。