Class RetryTimeoutImpl

  • All Implemented Interfaces:
    Retryable, RetryTimeout, org.refcodes.mixin.Abortable, org.refcodes.mixin.Restartable


    public class RetryTimeoutImpl
    extends java.lang.Object
    implements RetryTimeout
    Implementation of the RetryTimeout interface.
    • Constructor Detail

      • RetryTimeoutImpl

        public RetryTimeoutImpl​(long aTimeoutInMs,
                                long aRetryDelayInMs)
        Constructs the RetryTimeoutImpl with the given timeout and the given retry delay. The retry number is round about: ------------------------------------------------------------------------- "aTimeoutInMs / aRetryDelayInMs" ------------------------------------------------------------------------- CAUTION: The above mentioned is not necessarily so, in case your business logic inside the loop iterations is slow, then less retries fit in the given timeout.
        Parameters:
        aTimeoutInMs - The total time in milliseconds all iterations together will delay.
        aRetryDelayInMs - The delay before each retry to wait in milliseconds.
      • RetryTimeoutImpl

        public RetryTimeoutImpl​(long aTimeoutInMs,
                                int aRetryLoops)
        Constructs the RetryTimeoutImpl with the given timeout and the given number of retry loops. The retry delay is round about: ------------------------------------------------------------------------- "aTimeoutInMs / aRetryLoops" ------------------------------------------------------------------------- CAUTION: The above mentioned is not necessarily so, in case your business logic inside the loop iterations is slow, then less retries fit in the given timeout.
        Parameters:
        aTimeoutInMs - The total time in milliseconds all iterations together will delay.
        aRetryLoops - The number of retries, each retry delay before each retry to wait in milliseconds is about the timeout divided by the retry number.
    • Method Detail

      • nextRetry

        public boolean nextRetry​()
        Tests whether a next retry is possible. In case this is the case, then the thread is delayed by the configured (implementation specific) delay time.
        Specified by:
        nextRetry in interface Retryable
        Returns:
        True in case there is a next retry as of Retryable.hasNextRetry().
      • nextRetry

        public boolean nextRetry​(java.lang.Object aMonitor)
        Tests whether a next retry is possible. In case this is the case, then the thread is delayed by the configured (implementation specific) delay time or until the provided monitor is notified via Object.notify() or Object.notifyAll(). Similar to the Retryable.nextRetry() with the difference of accepting a dedicated monitor which is used for aborting the dellay.
        Specified by:
        nextRetry in interface RetryTimeout
        Parameters:
        aMonitor - the monitor
        Returns:
        True in case there is a next retry as of Retryable.hasNextRetry().
      • hasNextRetry

        public boolean hasNextRetry​()
        Returns true in case not all retires have been used up.
        Specified by:
        hasNextRetry in interface Retryable
        Returns:
        True in case there are retries left true in case all retries elapsed.
      • getRetryCount

        public int getRetryCount​()
        The current state regarding the retires. It specifies at which retry we currently are.
        Specified by:
        getRetryCount in interface Retryable
        Returns:
        The number of retries used up so far.
      • abort

        public void abort​()
        Specified by:
        abort in interface org.refcodes.mixin.Abortable
      • restart

        public void restart​()
        Specified by:
        restart in interface org.refcodes.mixin.Restartable