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

com.github.libgraviton.workerbase.mq.QueueConnector Maven / Gradle / Ivy

package com.github.libgraviton.workerbase.mq;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 

QueueConnector

* * @author List of contributors {@literal } * @see http://swisscom.ch * @version $Id: $Id */ public abstract class QueueConnector implements Runnable { private static final Logger LOG = LoggerFactory.getLogger(QueueConnector.class); private int retryAfterSeconds = 10; @Override public void run() { LOG.debug("Start connecting to to message queue '" + getQueueName() + "'."); Boolean isConnected = Boolean.FALSE; while (!isConnected) { isConnected = connectAttempt(); } } /** * Connecting to message queue. Will be retried until successful. * @return true if connection attempt was successful */ public Boolean connectAttempt() { try { connect(); // successfully connected return true; } catch (QueueConnectionException e) { LOG.warn("Unable to connect to message queue '" + e.getQueueName() + "'. Retry again..."); try { Thread.sleep(retryAfterSeconds * 1000); } catch (InterruptedException ie) { LOG.debug("Sleep interrupted", ie); } } return false; } public void setRetryAfterSeconds(int retryAfterSeconds) { this.retryAfterSeconds = retryAfterSeconds; } protected abstract void connect() throws QueueConnectionException; public abstract String getQueueName(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy