检测java API调用是否成功完成的最佳方法是什么

时间:2015-06-08 19:13:32

标签: java google-compute-engine

我正在使用以下代码使用Google Compute Engine Java API将目标池添加到java中的Google计算引擎。

Operation operation = compute.targetPools().insert(PROJECT_ID, REGION_NAME, targetPool).execute();

在执行下一行之前,我需要确保成功添加目标池。在Google Compute Engine API中执行此操作的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

您需要等待操作处于DONE状态,然后检查它是否没有错误。为此,您需要使用计算机对轮廓进行轮询。"操作"()。get() - 我将操作放在引号中,因为有三种类型的操作:global,区域和区域,每个都有自己的服务:globalOperations(),regionOperations()和zoneOperations()。由于targetPools是区域资源,因此insert创建的操作也是区域性的,因此您需要使用compute()。regionOperations()。get()。代码:

while (!operation.getStatus().equals("DONE")) {
   RegionOperations.Get getOperation = compute.regionOperations().get(
              PROJECT_ID, REGION_NAME, operation.getName());
   operation = getOperation.execute();
}
if (operation.getError() == null) {
  // targetPools has been successfully created
}

答案 1 :(得分:1)

一种可能性是检查状态

while(!operation.getStatus().equals("DONE")) { 
  //wait
  System.out.println("Progress: " + operation.getProgress());
}
  // Check if Success
if(operation.getError() != null) {
  // Handle Error
} else {
  // Succeed with Program
}

答案 2 :(得分:0)

您是否尝试过使用try / catch块? 你可以这样做:

try
{
   Operation operation = compute.targetPools().insert(PROJECT_ID, REGION_NAME, targetPool).execute();
}
catch(Exception ex)
{
   //Error handling stuff
}

希望有所帮助:)