浏览 195 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-10
为实现应用分离,分为二部分实现,见下图
第一部分实现设想: 一、滑动窗口实现: 设全局变量waitMap(Map)、todoMap; 设:n=waitMap.size(); 1、发送短信,先判断如果小于窗口大小,则直接发送、写入waitMap;如果大于窗口大小,则写入todoList,并且唤醒下面线程; 2、线程1:后台启一个线程,判断n如果大于窗口大小或n==0,则进行等待状态;如果小于则从todoMap中获取一条消息进行消息发送、并从todoMap中去掉此消息,加入到waitMap 消息中; 3、收到一个返回时,从waitMap中去掉此消息,并且唤醒上面线程。 其实就是生产者与消费者的问题。。。 二、未收到重收问题: 上述waitMap中增加最近发送时间、重发次数。 线程2:启动一个线程(或者几秒跑一次?),查询waitMap中时间与当前时间差T秒则进行重发,发现重发次数大于等于3次,则从waitMap中去除,写入DB中。 三、关于发送发送链路检测包 发送完一条短信后启动一个Timer,遇到下次发送将旧Timer干掉,重新启动一个Timer 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


