scriptfusion / retry
重试失败的操作。
5.0.0
2022-10-31 20:14 UTC
Requires
- php: ^8
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-08-29 03:42:11 UTC
README
Retry 提供了一个重试失败操作的功能,可选支持 Fiber。如果一个操作抛出异常,则被视为失败。这个库是对 Igor Wiedler 的 retry 的重写,但旨在保持对原始精神的忠实。
要求
用法
retry
函数使用可选的异常处理程序重试指定次数的操作。
如果指定了异常处理程序,它将在重试操作之前立即被调用。如果处理程序返回 false
,则不会重试操作。
retry(int $times, callable $operation, callable $onError = null);
$times
- 操作可能运行的最多次数。$operation
- 要运行的操作,最多运行指定次数。$onError
- 可选。接收抛出的异常作为其第一个参数的异常处理程序。
注意在原始库中,$times
指定了重试次数的数量,因此操作可以运行多达 $times + 1
次。在本版本中,$times
指定了操作可能运行的次数,因此如果指定为零(0
),则不会运行。
示例
以下代码片段尝试通过 HTTP 从 URL 获取数据,最多重试五次。
use function ScriptFUSION\Retry\retry; $response = retry(5, function () use ($url) { return HttpConnector::fetch($url); });