Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 1.04 KB

README.md

File metadata and controls

37 lines (28 loc) · 1.04 KB

Retry

https://www.youtube.com/watch?v=dQw4w9WgXcQ

Small helper to call a given callable multiple times if the first time it fails. Allows you to define what a fail means, how many retries, and how much time between retries.

Note that this is not async. The execution will be stopped here until all retries finish or the execution is succesful.

Sample usage:

$response = Retry::calling( 'wp_remote_post' )
                 ->with_args( array( $url, $args ) )
                 ->times( 3 )
                 ->with_delay( 1 )
                 ->failed_if( 'is_wp_error' )
                 ->go();

The callables can be closures for more advanced behaviour:

$response = Retry::calling( 'wp_remote_post' )
                 ->with_args( array( $url, $args ) )
                 ->times( 3 )
                 ->failed_if( function ( $response ) {
	                 if ( $response->response['code'] === 404 ) {
		                 return false;
	                 }

	                 return true;
                 } )
                 ->go();