java编写简单消息队列,实现高德坐标变形服务

1. 应用背景

项目中需要对GPS原始坐标进行高德坐标变形,GPS坐标一直在新增,为了保证服务的稳定性,采用了简单的消息队列进行处理。

设定定时任务,每次将待变形的坐标数据保存至待变形消息队列,然后变形服务去这个队列中取数据,将变形后的结果存入已变形消息队列,更新服务进入这个队列取数据,更新数据库。

备注:近5个月坐标转化量
2015年12月,日平均坐标量约6.16万
2015年11月,日平均坐标量约6.38万
2015年10月,日平均坐标量约3.71万
2015年09月,日平均坐标量约5.81万
2015年08月,日平均坐标量约7.40万

2. 消息队列

package com.autonavi.messagequeue;

import java.util.LinkedList;
import java.util.NoSuchElementException;

/**
 * @note 消息队列FIFO
 */
public class MessageQueue<T> {
   

    private int theMaxSizeOfQueue = 5000;

    /**
     * @param 1-锁定;0-可执行
     */
    private int theLockStatusOfQueue = 1;

    private LinkedList<T> msgList = new LinkedList<T>();

    /**
     * @param void
     * @return t or null
     */
    public T getMsg(){
        T t;
        try{
            t = msgList.getFirst();
            removeMsg();
        }catch(NoSuchElementException e){
            return null;
        }

        return t;
    }

    /**
     * @param t
     * @return true-添加成功;false-队列已满,需等候
     */
    public boolean addMsg(T t){
        boolean res = false;

        if(lockStatusMsg() == false){           
            lockMsg();          
            int size = sizeMsg();           
            if(size < theMaxSizeOfQueue){
                msgList.addLast(t);                     
                res = true;
            }else{              
                res = false;
            }       
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值