標籤:style blog http color java 使用 io 資料
Atitit.提升軟體穩定性---基於資料庫實現的持久化 迴圈隊列 環形隊列
1. 前言::選型(馬) 1
2. 實現java.util.queue介面 1
3. 當前指標的2個實現方式 1
1.1. 用一個遊標last 來指示 (指標表欄位last ),麻煩的,不推薦 1
1.2. (簡單,推薦)使用迴圈次數來指示,每迴圈加1 (欄位cirTimes),order by cirtimes 1
4. 表格設計id, cirTimes,createtime,handlerID,recID,delFlag 1
5. 迴圈隊列 環形隊列使用流程 2
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:[email protected]
轉載請註明來源: 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);