我正在尝试使用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()) { ...
错误日志显示有时我会立即尝试调用Google_Service_Exception :: getPayload。它好像批处理中的每个响应本身都是Google_Service_Exception对象,或者至少是第一个。
如何批量捕获错误?