获得管道结果的正确方法是什么?
What is the correct way to get the result of Pipeline?
我处理管道结果的代码如下所示(为简洁起见,一些代码被剪掉了):
PipelineResult result = pipeline.run();
switch (result.getState()) {
case DONE: {
handleDone();
break;
}
case FAILED: {
handleFailed();
break;
}
case CANCELLED: {
handleCancelled();
break;
}
case UNKNOWN:
case RUNNING:
case STOPPED: {
handleUnknownRunningStopped();
break;
}
default: {
assert false;
throw new IllegalStateException();
}
}
但是,我注意到,例如,没有返回枚举 PipelineResult.State
的值FAILED
或CANCELLED
,抛出异常:
- 对于失败的作业,抛出
DataflowJobExecutionException
- 对于取消的作业,抛出
DataflowJobCancelledException
处理管道结果的正确方法(以编程方式)是什么?
两个 DataflowPipelineRunners return PipelineResult 允许您查询管道的当前状态。 DataflowPipelineRunner return 在作业提交后立即生成 PipelineResult,但 BlockingDataflowPipelineRunner 在作业完成之前不会 return 它。
此外,如果作业未成功完成,BlockingDataflowPipeline 运行ner 会抛出异常——因为您指定了阻塞 运行(),我们假设您想知道是否出问题了。因此,如果您对 Blocking Runner 进行了硬编码,那么依赖异常是处理失败的一种简单方法。
请注意,您编写的代码片段使用了更通用的 PipelineResult 选项,但不适用于非阻塞 运行ner,因为这将 return还是运行宁.
我处理管道结果的代码如下所示(为简洁起见,一些代码被剪掉了):
PipelineResult result = pipeline.run();
switch (result.getState()) {
case DONE: {
handleDone();
break;
}
case FAILED: {
handleFailed();
break;
}
case CANCELLED: {
handleCancelled();
break;
}
case UNKNOWN:
case RUNNING:
case STOPPED: {
handleUnknownRunningStopped();
break;
}
default: {
assert false;
throw new IllegalStateException();
}
}
但是,我注意到,例如,没有返回枚举 PipelineResult.State
的值FAILED
或CANCELLED
,抛出异常:
- 对于失败的作业,抛出
DataflowJobExecutionException
- 对于取消的作业,抛出
DataflowJobCancelledException
处理管道结果的正确方法(以编程方式)是什么?
两个 DataflowPipelineRunners return PipelineResult 允许您查询管道的当前状态。 DataflowPipelineRunner return 在作业提交后立即生成 PipelineResult,但 BlockingDataflowPipelineRunner 在作业完成之前不会 return 它。
此外,如果作业未成功完成,BlockingDataflowPipeline 运行ner 会抛出异常——因为您指定了阻塞 运行(),我们假设您想知道是否出问题了。因此,如果您对 Blocking Runner 进行了硬编码,那么依赖异常是处理失败的一种简单方法。
请注意,您编写的代码片段使用了更通用的 PipelineResult 选项,但不适用于非阻塞 运行ner,因为这将 return还是运行宁.