Atitit.提高軟件穩定性---基於數據庫實現的持久化 循環隊列 環形隊列

Atitit.提高軟件穩定性---基於數據庫實現的持久化  循環隊列 環形隊列java

 

1. 前言::選型() 1數據庫

2. 實現java.util.queue接口 1fetch

3. 當前指針的2個實現方式 1spa

1.1. 用一個遊標last 來指示 (指針表字段last ),麻煩的,不推薦 1.net

1.2. (簡單,推薦)使用循環次數來指示,每循環加1   (字段cirTimes),order by cirtimes 1設計

4. 表格設計id, cirTimes,createtime,handlerID,recID,delFlag 1指針

5. 循環隊列 環形隊列使用流程 2blog

1.3. 加入隊列addALL,add 2接口

1.4. 抓取要處理的元素 peek(int fetchCount)  delFlag=0,order by cirtimes 2隊列

1.5. 出隊並追加到隊尾remove,removeALL(list):::   cirtimes++; 2

 

 

1. 前言::選型(馬)

挑選李一瓦,馬個適合的implet

爲甚要使用循環隊列 ,,能夠大的提高隊列的穩定性..防止推送消息outdate不送...and避免隊列卡住

 

2. 實現java.util.queue接口

 

 

3. 當前指針的2個實現方式

 

1.1. 用一個遊標last 來指示 (指針表字段last ),麻煩的,不推薦

1.2. (簡單,推薦)使用循環次數來指示,每循環加1   (字段cirTimes),order by cirtimes

做者::老哇的爪子Attilax艾龍,EMAIL:1466519819@qq.com

轉載請註明來源: http://blog.csdn.net/attilax

 

4. 表格設計id, cirTimes,createtime,handlerID,recID,delFlag

id, cirTimes,createtime,handlerID,recID,delFlag

 

handlerID::可讓許多的處理器使用,每一個processor只得到本身的隊列..

recid::關聯的rec id...

5. 循環隊列 環形隊列使用流程

1.3. 加入隊列addALL,add

 

1.4. 抓取要處理的元素 peek(int fetchCount delFlag=0,order by cirtimes

 

public List peek(int fetchCount) {

// attilax 老哇的爪子  m_9_r   o7s 

final List li=new ArrayList();

//  noticeFlag is null

String hql="from GvDownloadTask   where 1=1 and downloadStatus is null   order by noticeFlag  ";

Query q = getSession().createQuery(hql); 

q.setFirstResult(0); 

q.setMaxResults(fetchCount); 

List l = q.list(); 

return l;

 

}

1.5.  出隊並追加到隊尾remove,removeALL(list):::   cirtimes++;

t.setNoticeFlag(t.getNoticeFlag()+1);

c.merge(t);

 

我要啦免費統計
相關文章
相關標籤/搜索