| | |
| | | private volatile CopyOnWriteArrayList<MqMessage> passiveRequestList;
|
| | | private ThreadPoolExecutor infiniteExecutorService;
|
| | |
|
| | | /**
|
| | | *
|
| | | * @description: 初始化的时候创建主动,被动两个排队队列
|
| | | * @return: void
|
| | | *
|
| | | */
|
| | |
|
| | | @PostConstruct
|
| | | public void init() {
|
| | |
|
| | |
| | | this.passiveRequestList = new CopyOnWriteArrayList<>();
|
| | | createPassiveListenerThread();
|
| | | }
|
| | | /**
|
| | | *
|
| | | * @description: 获取是否需要
|
| | | * @return: 是否需要aes加密
|
| | | *
|
| | | */
|
| | | @Override
|
| | | public Boolean getAes() {
|
| | | return aes;
|
| | | }
|
| | | /**
|
| | | *
|
| | | * @description: 获取ars加密请求的路径
|
| | | * @return: 加密接口路径
|
| | | *
|
| | | */
|
| | | @Override
|
| | | public String getAesUrl() {
|
| | | return aesUrl;
|
| | | }
|
| | |
|
| | | /**
|
| | | *
|
| | | * @description: 创建主动分发队列
|
| | | * @return: void
|
| | | *
|
| | | */
|
| | |
|
| | | private void createPassiveListenerThread() {
|
| | | new Thread(() -> {
|
| | |
| | | }).start();
|
| | | }
|
| | |
|
| | | /**
|
| | | *
|
| | | * @description: 创建下页分发的数据包信息
|
| | | * @param mqEntity 当前分发的entity数据
|
| | | * @return: void
|
| | | *
|
| | | */
|
| | | private MqMessage createNextSubMq(MqEntity mqEntity) {
|
| | | String type = mqEntity.getType();
|
| | | AtomicInteger pageNoAI = mqEntity.getPageNo();
|
| | |
| | | MqMessage mqMessage = new MqMessage(mqEntity);
|
| | | return mqMessage;
|
| | | }
|
| | |
|
| | | /**
|
| | | *
|
| | | * @description: 添加到主动分发队列
|
| | | * @param message 数据包信息
|
| | | * @return: 是否添加成功
|
| | | *
|
| | | */
|
| | | @Override
|
| | | public boolean pushActiveMq(MqMessage message) {
|
| | | return pushActiveMq(message, null);
|
| | |
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | | /**
|
| | | *
|
| | | * @description: 添加到被动分发队列
|
| | | * @param message 数据包信息
|
| | | * @param touchType 触发类型
|
| | | * @param logs 日志对象
|
| | | * @return: 是否添加成功
|
| | | *
|
| | | */
|
| | | @Override
|
| | | public Result pushPassiveMq(MqMessage message, String touchType, SysDispenseLogs logs) {
|
| | | try{
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | *
|
| | | * @description: 获取主动分发队列中的排队数
|
| | | * @return: 主动分发排队数
|
| | | *
|
| | | */
|
| | |
|
| | |
|
| | | @Override
|
| | | public Integer passiveQueueSize() {
|
| | | return priorityQueue.size();
|
| | | }
|
| | |
|
| | | /**
|
| | | *
|
| | | * @description: 获取被动分发队列中的排队数
|
| | | * @return: 被动分发排队数
|
| | | *
|
| | | */
|
| | | @Override
|
| | | public Integer avtiveQueueSize() {
|
| | | return infiniteQueue.size();
|