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

com.github.phantomthief.jedis.QueueConsumer Maven / Gradle / Ivy

The newest version!
/**
 * 
 */
package com.github.phantomthief.jedis;

import java.util.function.Consumer;
import java.util.function.Supplier;

/**
 * @author w.vela
 */
public class QueueConsumer {

    private final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(getClass());

    private final Supplier queuePoper;

    private final Consumer queueConsumer;

    private volatile boolean stopped = false;

    /**
     * @param queuePoper
     * @param queueConsumer
     */
    public QueueConsumer(Supplier queuePoper, Consumer queueConsumer) {
        this.queuePoper = queuePoper;
        this.queueConsumer = queueConsumer;
    }

    public void startConsume() {
        while (!stopped) {
            try {
                T object = queuePoper.get();
                if (object != null) {
                    queueConsumer.accept(object);
                }
            } catch (Throwable e) {
                logger.error("fail to consumer:{}, {}, exception:{}", queuePoper, queueConsumer,
                        e.getMessage());
            }
        }
    }

    public void stop() {
        stopped = true;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy