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

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

package com.github.libgraviton.workerbase.mq;

import com.github.libgraviton.workerbase.WorkerAbstract;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.Properties;

/**
 * 

QueueManager

* * @author List of contributors {@literal } * @version $Id: $Id * @see http://swisscom.ch */ public class WorkerQueueManager extends QueueManager { private ConnectionFactory factory; private WorkerAbstract worker; private Integer prefetchCount; public WorkerQueueManager(Properties properties) { super(properties); prefetchCount = Integer.parseInt(properties.getProperty("queue.prefetchCount")); factory = getFactory(properties); } protected ConnectionFactory getFactory(Properties properties) { ConnectionFactory factory = new ConnectionFactory(); factory.setHost(properties.getProperty("queue.host")); factory.setPort(Integer.parseInt(properties.getProperty("queue.port"))); factory.setUsername(properties.getProperty("queue.username")); factory.setPassword(properties.getProperty("queue.password")); factory.setVirtualHost(properties.getProperty("queue.vhost")); factory.setAutomaticRecoveryEnabled(true); factory.setNetworkRecoveryInterval(retryAfterSeconds * 1000); factory.setExceptionHandler(new QueueExceptionHandler()); return factory; } @Override protected QueueConnector getQueueConnector() { WorkerQueueConnector queueConnector = new WorkerQueueConnector(); queueConnector.setQueueName(getQueueName()); queueConnector.setFactory(factory); queueConnector.setWorker(worker); queueConnector.setRetryAfterSeconds(retryAfterSeconds); queueConnector.setPrefetchCount(prefetchCount); return queueConnector; } public void createChannel(Connection connection) throws IOException { ((WorkerQueueConnector) getQueueConnector()).createChannel(connection); } public void setWorker(WorkerAbstract worker) { this.worker = worker; } public ConnectionFactory getFactory() { return factory; } public WorkerAbstract getWorker() { return worker; } public String getQueueName() { return worker.getWorkerId(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy