honzamac/conditional-retry

条件重试任何第三方API调用

v0.1 2017-08-16 20:14 UTC

This package is auto-updated.

Last update: 2024-09-24 09:05:59 UTC


README

条件重试任何第三方API调用。

有时网络连接可能无法正常工作,我们希望重试API调用。使用这个小型库,您可以根据特定的错误条件(由异常或返回值抛出)轻松地重试任何操作。

Build Status

用法

重试的原因通过 return $result 返回。第一个参数是必需的API调用,第二个参数是条件回调,第三个参数定义API调用将执行的总运行次数。

<?php
require __DIR__ . '/vendor/autoload.php';

retryConditional(function () {
	$result = $this->sms->send('+420800100200', 'Help, I\'m drowning!');
    return $result;
}, function ($returnValue) {
    return !$returnValue;
}, 3);

重试的原因通过 RuntiomeException 返回。

<?php
require __DIR__ . '/vendor/autoload.php';

retryConditional(
    function () { 
    	// do stuff
    	throw new \RuntimeException();
    },
    function ($value, $exception) { return $exception instanceof \RuntimeException;},
    3
);

当所有重试都失败时,返回最后一个值/异常或重新抛出。有关更多信息,请查看测试。

需求

  • 需要PHP 7.0,但强烈建议使用PHP的最新版本。

安装

您可以使用 Composer 将此库添加为本地、按项目依赖项到您的项目中。

composer require honzamac/conditional-retry

贡献

欢迎任何贡献。