package com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList; import com.xcong.excoin.rabbit.pricequeue.AscBigDecimal; import com.xcong.excoin.rabbit.pricequeue.DescBigDecimal; import java.util.concurrent.PriorityBlockingQueue; /** * 网格交易队列管理类 * * 用于管理系统中各种网格交易相关的优先级阻塞队列, * 包括完整的网格队列、平仓队列和开仓队列。 * * @author Administrator */ public class WangGeListQueue { //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ // todo 系统启动后,初始化网格队列 /** * 完整的网格 头元素最小 */ public static PriorityBlockingQueue QUEUE_ASC = null; //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ // todo 当用户下了第一单后,根据开仓价格初始化网格平仓队列和开仓队列 /** * 网格平仓队列 头元素最小 */ public static PriorityBlockingQueue QUEUE_PINGCANG_ASC = null; /** * 网格开仓队列 头元素最大 */ public static PriorityBlockingQueue QUEUE_KAICANG_DESC = null; /** * 获取完整的网格队列(升序) * 如果队列未初始化则创建新的优先级阻塞队列 * * @return 返回升序排列的PriorityBlockingQueue队列,队列头部元素最小 */ public static PriorityBlockingQueue getQueueAsc() { if (QUEUE_ASC == null) { QUEUE_ASC = new PriorityBlockingQueue(); } return QUEUE_ASC; } /** * 获取网格平仓队列(升序) * 如果队列未初始化则创建新的优先级阻塞队列 * * @return 返回升序排列的PriorityBlockingQueue队列,队列头部元素最小 */ public static PriorityBlockingQueue getPingCang() { if (QUEUE_PINGCANG_ASC == null) { QUEUE_PINGCANG_ASC = new PriorityBlockingQueue(); } return QUEUE_PINGCANG_ASC; } /** * 获取网格开仓队列(降序) * 如果队列未初始化则创建新的优先级阻塞队列 * * @return 返回降序排列的PriorityBlockingQueue队列,队列头部元素最大 */ public static PriorityBlockingQueue getKaiCang() { if (QUEUE_KAICANG_DESC == null) { QUEUE_KAICANG_DESC = new PriorityBlockingQueue(); } return QUEUE_KAICANG_DESC; } }