All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jitsi.retry.SimpleRetryTask Maven / Gradle / Ivy

The newest version!
/*
 * Copyright @ 2015 - present, 8x8 Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jitsi.retry;

import java.util.concurrent.*;

/**
 * Simple implementation of {@link #getCallable()} which stores callable method
 * in the constructor.
 *
 * @author Pawel Domas
 */
public class SimpleRetryTask
    extends RetryTask
{
    /**
     * Retry job callable to be executed on each retry attempt.
     */
    protected Callable retryJob;

    /**
     * Initializes new instance of SimpleRetryTask.
     *
     * @param initialDelay how long we're going to wait before running task
     *                     callable for the first time(in ms).
     * @param retryDelay how often are we going to retry(in ms).
     * @param retryOnException should we continue retry after callable throws
     *                         unexpected Exception.
     * @param retryJob the callable job to be executed on retry.
     */
    public SimpleRetryTask(long               initialDelay,
                           long               retryDelay,
                           boolean            retryOnException,
                           Callable  retryJob)
    {
        super(initialDelay, retryDelay, retryOnException);

        this.retryJob = retryJob;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Callable getCallable()
    {
        return retryJob;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy