keboola / settle
Settle provides a function to wait for something to happen.
Installs: 2 665
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 18
Forks: 0
Open Issues: 0
Requires
- php: >=7.4
- ext-json: *
- keboola/common-exceptions: ^1.1
- psr/log: ^1.1|^2.0|^3.0
- symfony/config: ^5.2|^6.2
Requires (Dev)
- infection/infection: ^0.26
- keboola/coding-standard: >=14.0.0
- monolog/monolog: ^2.1
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5
- sempro/phpunit-pretty-print: ^1.4
- symfony/dotenv: ^6.2
This package is auto-updated.
Last update: 2024-12-04 10:21:42 UTC
README
Library which provides a function that waits for something to happen. Usage:
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;}}, );
The settle
function expects two callbacks - comparator
and getCurrentValue
. In a typical scenario, the
getCurrentValue
checks and returns the result of some asynchronous operation (data loaded, process finished) and
the comparator
checks that the getCurrentValue
result is the expected value. If the expected value is not
reached within the specified number of attempts a RuntimeException
is thrown.
License
MIT licensed, see LICENSE file.