Error handling 从gmail api批处理请求获取错误消息

Error handling 从gmail api批处理请求获取错误消息,error-handling,google-api-php-client,gmail-api,Error Handling,Google Api Php Client,Gmail Api,我正在尝试使用gmail API上的批处理请求获取gmail附件。它有时是有效的,但如果我重新运行它,我会在很大一部分时间内出错。我希望捕捉错误并采取适当的措施,如指数退避,这将(希望)解决问题。但它不起作用 代码如下: for ($n = 0; $n < 5; ++$n) { try { $results = $batch->execute(); break; } catch (Google_Service_Exception $e) {

我正在尝试使用gmail API上的批处理请求获取gmail附件。它有时是有效的,但如果我重新运行它,我会在很大一部分时间内出错。我希望捕捉错误并采取适当的措施,如指数退避,这将(希望)解决问题。但它不起作用

代码如下:

for ($n = 0; $n < 5; ++$n) {
    try {
      $results = $batch->execute();
      break;
    } catch (Google_Service_Exception $e) {
      if ($e->getError() != '') { //placeholder
        // Apply exponential backoff.
        usleep((1 << $n) * 1000 + rand(0, 1000));
      } 
    }
  }


  for ($i=1; $i < $stop+1; $i++) {
    $message = $results['response-'.$i];
            if ($message2->getPayload()) { ...
($n=0;$n<5;++$n)的
{
试一试{
$results=$batch->execute();
打破
}捕获(谷歌服务例外$e){
如果($e->getError()!=''){//占位符
//应用指数退避。
usleep((1 getPayload()){。。。
错误日志显示,有时我会立即尝试调用Google_Service_Exception::getPayload。这就好像批处理中的每个响应本身就是一个Google_Service_Exception对象,或者至少是第一个


如何在批处理中捕获错误?

我想这是ruby?:-)这是php。我发现了这样一种说法,即批处理响应不会抛出异常,而是返回结果中的错误。因此,我重写了代码,以检查每个结果返回的类,并以这种方式采取行动。我希望库提供一个选项,说明如何处理批处理错误。例如,我希望l batch->execute,如果结果受速率限制,则使用指数退避重试n次。这似乎是一个有用的东西(在php客户端库中)。将调整标志,以便关心该标记的人可以加入。