2017 © Pedro Peláez
 

library retry

A simple library to retry things.

image

jralph/retry

A simple library to retry things.

  • Thursday, January 4, 2018
  • by jralph
  • Repository
  • 0 Watchers
  • 2 Stars
  • 911 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 13 Versions
  • 7 % Grown

The README.md

PHP Retry Latest Stable Version Total Downloads Latest Unstable Version License

A simple library to retry commands in php., (*1)

Installation

This package is available through composer., (*2)

composer require jralph/retry

Basic Use

The library includes a simple helper function for ease of use., (*3)

Note: On a failure to succeed in running the command, a Jralph\Retry\RetryException will be thrown., (*4)

mixed retry (int|callable $attempts , callable $command [, callable $onError = null])

Parameters

  • $attempts: The number of times to attempt a command.
    • If a callable is provided, the retry will continue until this closure returns true.
  • $command: The command to run each time.
  • $onError: An optional callback to run each time the $command fails.

Example

<?php

use function Jralph\Retry\retry;

$result = retry(3, function (int $attempt) {
    // Throwing an error as an example....first 2 attempts will fail.
    if ($attempt < 2) {
        throw new Exception('Just throwing an error as an example!');
    }

    return 'Hello World!';
});

// Outputs 'Hello World!'
echo $result;

Advanced Use / Object Use

If you want more flexibility over the retry tool, you can use the Retry object directly and ignore the helper function., (*5)

The Retry object is fully chainable to make things simple., (*6)

<?php

use Jralph\Retry\Retry;
use Jralph\Retry\Command;

$retry = new Retry(new Command(function (int $attempt) {
    // Throwing an error as an example....first 2 attempts will fail.
    if ($attempt < 2) {
        throw new Exception('Just throwing an error as an example!');
    }

    return 'Hello World!';
}));

$result = $retry->attempts(3)->run();

// Outputs 'Hello World!'
echo $result;

Available Methods

  • new Retry(Command $command); The Command object to run as the command.
  • $retry->attempts(int $attempts); The maximum number of times to attempt the command. Note, an attempt count of 0 will run for ever!
  • $retry->wait(int $seconds); The number of seconds to wait between attempts.
  • $retry->until(callable $until); Retry until the result of $until returns true. Note: Works well with $retry->attempts(0);
    • Accepts $attempt as the first parameter, giving the current number of attempts.
    • Accepts $response as the second parameter, giving the response of the last attempt.
  • $retry->onlyIf(callable $onlyIf); Retry only if the $onlyIf returns true.
    • Accepts $attempt as the first parameter, giving the current number of attempts.
    • Accepts $response as the second parameter, giving the response of the last attempt.
  • $retry->onError(callable $onError); A callback to run each time the retry fails.
    • Accepts $attempt as the first parameter, giving the current number of attempts.
    • Accepts $response as the second parameter, giving the response of the last attempt.
  • $retry->run(); Run the command using the specified setup.

Change Log

  • 3.0.0
    • Updated to php 8.0+.
  • 2.0.0
    • Removing of deprecated methods.
    • Removal of once, twice, thrice, forever methods in favour of using attempts(int $attempts).
    • Constructor only accepts Command objects.
  • 1.2.0
    • Updated to php 7.1+.
    • Deprecated command method in favour of passing a command object into the constructor.
  • 1.1.1
    • Changed all methods using \Closure to use callable instead.
  • 1.1.0
    • Added wait(int $seconds); method.

The Versions

04/01 2018

dev-master

9999999-dev

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.1

 

The Development Requires

by Joseph Ralph

04/01 2018

2.0.2

2.0.2.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.1

 

The Development Requires

by Joseph Ralph

04/01 2018

2.0.1

2.0.1.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.1

 

The Development Requires

by Joseph Ralph

04/01 2018

2.0.0

2.0.0.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.1

 

The Development Requires

by Joseph Ralph

04/01 2018

1.2.0

1.2.0.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.1

 

The Development Requires

by Joseph Ralph

25/10 2016

1.1.3

1.1.3.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph

25/10 2016

1.1.2

1.1.2.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph

25/10 2016

1.1.1

1.1.1.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph

18/10 2016

1.1.0

1.1.0.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph

05/10 2016

1.0.3

1.0.3.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph

05/10 2016

1.0.2

1.0.2.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph

05/10 2016

1.0.1

1.0.1.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph

05/10 2016

1.0.0

1.0.0.0

A simple library to retry things.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Joseph Ralph