com.github.liaomengge.base_common.mq.domain.AbstractQueueConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of base-common-middleware Show documentation
Show all versions of base-common-middleware Show documentation
base common tool for developer
The newest version!
package com.github.liaomengge.base_common.mq.domain;
import com.github.liaomengge.base_common.mq.consts.MQConst;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* Created by liaomengge on 2018/7/20.
*/
@Data
@Getter
@Setter
public abstract class AbstractQueueConfig {
protected String baseQueueName;
protected int queueCount = MQConst.DEFAULT_QUEUE_COUNT;
public AbstractQueueConfig(String baseQueueName) {
this.baseQueueName = baseQueueName;
}
public AbstractQueueConfig(String baseQueueName, int queueCount) {
this.baseQueueName = baseQueueName;
this.queueCount = queueCount;
}
public String[] buildQueueNames() {
String[] queueNames = new String[queueCount];
for (int i = 0; i < queueCount; i++) {
queueNames[i] = this.buildQueueName(i);
}
return queueNames;
}
public String buildQueueName(int hash) {
String baseQueueName = this.getBaseQueueName();
int queueCount = this.getQueueCount();
int modHash = Math.abs(hash) % queueCount;
if (modHash == 0) {
return baseQueueName;
}
return baseQueueName + "_" + modHash;
}
}