keboola/settle

Settle 提供了一个等待某件事情发生的功能。

1.0.1 2024-01-25 07:43 UTC

README

提供一个等待某件事情发生的功能的库。使用方法

use Keboola\Settle\SettleFactory;
use Psr\Log\NullLogger;

$logger = new NullLogger();
$factory = new SettleFactory($logger);

$settle = $factory->createSettle(maxAttempts: 10, maxAttemptsDelay: 1);
$i = 0;
$settle->settle(
    comparator: fn($v) => $v === 5,
    getCurrentValue: function() use (&$i) {while ($i < 5) {$i++; return $i;}},
);

settle 函数期望两个回调函数 - comparatorgetCurrentValue。在典型场景中,getCurrentValue 检查并返回某些异步操作的结果(数据已加载,进程已完成),而 comparator 检查 getCurrentValue 的结果是否为预期值。如果在指定的尝试次数内未达到预期值,则抛出 RuntimeException 异常。

许可证

MIT 许可证,见 LICENSE 文件。