divineomega / attempt
Attempt to run a function, retrying if needed
Fund package maintenance!
DivineOmega
Requires
- php: >=7.1
This package is auto-updated.
Last update: 2024-12-05 09:02:18 UTC
README
This PHP package allows you to attempt to run a function, automatically retrying if an exception occurs.
It can useful for:
- Unreliable connectivity or APIs
- Interaction with rate-limited systems
- Handling unreliable input data
Installation
To install Attempt, just run the following command.
composer require divineomega/attempt
Usage
See the following usage examples.
// Attempts to run the function immediately. If an exception occurs, retry forever. attempt(function() { // ... })->now(); // Attempts to run the function immediately. If an exception occurs, retry up to 5 times. attempt(function() { // ... })->maxAttempts(5) ->now(); // Attempts to run the function immediately. If an exception occurs, retry until the specified date time. attempt(function() { // ... })->until($datetime) ->now(); // Attempts to run the function immediately. If an exception occurs, retry forever, with a 20 second gap between attempts. attempt(function() { // ... })->withGap(20) ->now(); // Attempts to run the function at a specified date time. If an exception occurs, retry forever. The thread will block until the specified date time is reached. attempt(function() { // ... })->at($datetime);
Most of these methods can be chained and used together as you might expect to give the desired functionality.