0

我的 PHP 脚本正在使用 API 请求及其 SDK 处理多个外部服务。碰巧,请求可能会失败,我想实现一个重试机制。
SDK 没有内置此功能,它们只会抛出一个Exceptionif 请求不成功。
我已经创建了多个使用 SDK 来检索/上传所需数据的函数,现在我想在任何 SDK 请求失败时添加重试机制。我可以在每个 SDK 调用周围添加一段代码,如下所示:

$retry = 0;
while ($retry < 3) {
    try {
        $account = $client->load('account');
    } catch (\Exception $e) {
        $retry++;
    }
}

但这意味着我将在每个 SDK 函数调用中添加相同的代码,这将是一团糟。

PHP中是否有可能创建一个通用函数或某种包装器,如果它失败(抛出一个Exception)将重试执行函数?

PS SDK 用于curl发送请求。也许,可以调整curl以实现这种重试机制?

4

0 回答 0