章节介绍
本节正式开始队列代码的实现, 把上节遗留的几个坑填上。
队列配置
QueueConfig.java(queue\src\main\java\com\davin\framework\queue\config\QueueConfig.java)
public class QueueConfig {
/** 队列容量,最大能存放多少待消费的任务数量 */
private int capacity;
/** 取任务可能会产生的超时时长 */
private long pollTimeout;
/** 取任务可能会产生的超时时长单位 */
private TimeUnit pollTimeoutUnit;
/** 最低消费者数量,空闲时存活的消费者数 */
private long minConsumerCount;
/** 最多消费者数量,不要设置太大,可能会导致内存溢出 */
private long maxConsumerCount;
/** 忙碌阈值, 如果空闲容量小于该值, 将添加新的消费者 */
private float remainingUpperPercent;
/** 空闲阈值,如果空闲容量大于改制,将移除空闲的消费者 */
private float remainingLowerPercent;
....
}
完整代码如下:
package com.davin.framework.queue.config;
import java.util.concurrent.TimeUnit;
/**
* Queue config
* @author davin.bao
* @date 2024/6/5
*/
public class QueueConfig {
private int capacity;
private long pollTimeout;
private TimeUnit pollTimeoutUnit;
private long minConsumerCount;
private long maxConsumerCount;
private float remainingUpperPercent;
private float remainingLowerPercent;
public int getCapacity() {
return capacity;
}
public long getPollTimeout() {
return pollTimeout;
}
public TimeUnit getPollTimeoutUnit() {
return pollTimeoutUnit;
}
public long getMinConsumerCount() {
return minConsumerCount;
}
public long getMaxConsumerCount() {
return maxConsumerCount;
}