package com.yanzuoguang.mq.vo; import com.yanzuoguang.dao.TableAnnotation; import com.yanzuoguang.util.helper.CheckerHelper; import com.yanzuoguang.util.helper.DateHelper; import com.yanzuoguang.util.helper.StringHelper; import com.yanzuoguang.util.vo.BaseVo; import com.yanzuoguang.util.vo.InitDao; /** * 创建队列 * * @author 颜佐光 */ @TableAnnotation("Queue_Queue") public class QueueVo extends BaseVo implements InitDao { /** * 队列编号 */ private String queueId; /** * 队列名称 */ private String queueName; /** * 交换器名称 */ private String exchangeName; /** * 路由键 */ private String routeKey; /** * 优先级队列 */ private int priority; /** * 死信处理,在死信处理时,则死信交换器是有效的 */ private long dedTime; /** * 死信处理交换器名称 */ private String dedExchangeName; /** * 死信处理队列名称 */ private String dedQueueName; /** * 死信处理路由键 */ private String dedRouteKey; /** * 创建时间 */ private String createDate; /** * 检测函数 */ public void check() { CheckerHelper check = CheckerHelper.newInstance() .notBlankCheck("QueueName", this.getQueueName()) .notBlankCheck("ExchangeName", this.getExchangeName()) .notBlankCheck("RouteKey", this.getRouteKey()) .checkException(this); if (this.getDedTime() > 0 || !StringHelper.isEmpty(this.getDedQueueName()) || !StringHelper.isEmpty(this.getDedExchangeName()) || !StringHelper.isEmpty(this.getDedRouteKey()) ) { check.notBlankCheck("DelayQueueName", this.getDedQueueName()) .notBlankCheck("DelayExchangeName", this.getDedExchangeName()) .notBlankCheck("DelayRouteKey", this.getDedRouteKey()) .checkException(this); } } /** * 构造函数 */ public QueueVo() { } /** * 构造函数,用于创建延迟队列。</p> * 会创建queueName、exchangeName并且通过routeKey绑定。 * * @param queueName 队列名称 * @param exchangeName 交换器名称 * @param routeKey 路由键 */ public QueueVo(String queueName, String exchangeName, String routeKey) { this.queueName = queueName; this.exchangeName = exchangeName; this.routeKey = routeKey; } /** * 构造函数,用于创建延迟队列。</p> * 会创建queueName、exchangeName并且通过routeKey绑定。 * * @param queueName 队列名称,交换器名称,路由键 */ public QueueVo(String queueName) { this.queueName = queueName; this.exchangeName = queueName; this.routeKey = queueName; } /** * 构造函数,用于创建延迟队列。</p> * 创建 queueName、exchangeName 并且通过 routeKey 绑定, 创建 dedQueueName、dedExchangeName 并且通过 dedRouteKey 绑定, * 将 queueName 的死信队列设置为 dedExchangeName 和 dedRouteKey . * * @param queueName 队列名称 * @param exchangeName 交换器名称 * @param routeKey 路由键 * @param dedTime 死信时间 * @param dedExchangeName 死信交换器名称 * @param dedQueueName 死信交换队列名称 * @param dedRouteKey 死信路由键 */ public QueueVo(String queueName, String exchangeName, String routeKey, long dedTime, String dedExchangeName, String dedQueueName, String dedRouteKey) { this.queueName = queueName; this.exchangeName = exchangeName; this.routeKey = routeKey; this.dedTime = dedTime; this.dedExchangeName = dedExchangeName; this.dedQueueName = dedQueueName; this.dedRouteKey = dedRouteKey; } /** * 构造函数,用于创建延迟队列。</p> * 创建 queueName、exchangeName 并且通过 routeKey 绑定, 创建 dedQueueName、dedExchangeName 并且通过 dedRouteKey 绑定, * 将 queueName 的死信队列设置为 dedExchangeName 和 dedRouteKey . * * @param queueName 队列名称,路由键,交换器名称 * @param dedTime 死信时间 * @param dedQueueName 死信交换器名称,死信交换队列名称,死信路由键 */ public QueueVo(String queueName, long dedTime, String dedQueueName) { this.queueName = queueName; this.exchangeName = queueName; this.routeKey = queueName; this.dedTime = dedTime; this.dedExchangeName = dedQueueName; this.dedQueueName = dedQueueName; this.dedRouteKey = dedQueueName; } public String getQueueId() { return queueId; } public void setQueueId(String queueId) { this.queueId = queueId; } public String getQueueName() { return queueName; } public void setQueueName(String queueName) { this.queueName = queueName; } public String getExchangeName() { return exchangeName; } public void setExchangeName(String exchangeName) { this.exchangeName = exchangeName; } public String getRouteKey() { return routeKey; } public void setRouteKey(String routeKey) { this.routeKey = routeKey; } public int getPriority() { return priority; } public void setPriority(int priority) { this.priority = priority; } public long getDedTime() { return dedTime; } public void setDedTime(long dedTime) { this.dedTime = dedTime; } public String getDedExchangeName() { return dedExchangeName; } public void setDedExchangeName(String dedExchangeName) { this.dedExchangeName = dedExchangeName; } public String getDedQueueName() { return dedQueueName; } public void setDedQueueName(String dedQueueName) { this.dedQueueName = dedQueueName; } public String getDedRouteKey() { return dedRouteKey; } public void setDedRouteKey(String dedRouteKey) { this.dedRouteKey = dedRouteKey; } public String getCreateDate() { return createDate; } public void setCreateDate(String createDate) { this.createDate = createDate; } @Override public void init() { this.dedExchangeName = StringHelper.getFirst(this.dedExchangeName, ""); this.dedQueueName = StringHelper.getFirst(this.dedQueueName, ""); this.dedRouteKey = StringHelper.getFirst(this.dedRouteKey, ""); this.createDate = StringHelper.getFirst(this.createDate, DateHelper.getNow()); } }