Atitit.升级软件的稳定性---基于数据库实现持久化 循环队列 循环队列

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);

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-05 04:44:56

Atitit.升级软件的稳定性---基于数据库实现持久化 循环队列 循环队列的相关文章

Atitit.提升软件稳定性---基于数据库实现的持久化 循环队列 环形队列

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,d

atitit. java queue 队列体系and自定义基于数据库的队列总结o7t

atitit. java queue 队列体系and自定义基于数据库的队列总结o7t 1. 阻塞队列和非阻塞队列 1 2. java.util.Queue接口, 1 3. ConcurrentLinkedQueue 2 4. BlockingQueue阻塞队列 2 4.1. 1. ArrayBlockingQueue 3 4.2. 2. LinkedBlockingQueue 3 4.3. 3. DelayQueue 3 4.4. 4. PriorityBlockingQueue 3 4.5. 

atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t

atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t 1. 堵塞队列和非堵塞队列 1 2. java.util.Queue接口. 1 3. ConcurrentLinkedQueue 2 4. BlockingQueue堵塞队列 2 4.1. 1. ArrayBlockingQueue 3 4.2. 2. LinkedBlockingQueue 3 4.3. 3. DelayQueue 3 4.4. 4. PriorityBlockingQueue 3 4.5.

Atitit. 高级软件工程师and 普通的区别 高级编程的门槛总结

Atitit.  高级软件工程师and 普通的区别 高级编程的门槛总结 1. 完备的知识体系 2 2. 编程理论/原理的掌握 2 1.1. 掌握常用的概念(ORM,IOC,AOP,event driver/mvc 等) 2 1.2. 高级概念(lambda,闭包closure,fp,dsl ) 2 1.3. 元编程MOP  Annotation/attributi 2 1.4. 规则引擎and jbpm 2 1.5. 自己的框架and工具的 2 1.6. 自己的输入法 2 1.7. Uapi 3

让你提前认识软件开发(25):数据库简单介绍

第2部分 数据库SQL语言 数据库简单介绍 数据库是个通用化的综合性的数据集合.它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性. 眼下,国际上主导的大型数据库管理系统有ORACLE.SQL SERVER.SYBASE.INFORMIX和INGRES等. 数据库中经常使用的编程语言是SQL语言,按其功能可分为四大部分: (1) 数据定义语言(Data Definition Language.DDL),用于定义.撤销和改动数据模式. (2) 数据查询语言(Data Query La

让你提前认识软件开发(25):数据库简介

第2部分 数据库SQL语言 数据库简介 数据库是个通用化的综合性的数据集合,它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性.目前,国际上主导的大型数据库管理系统有ORACLE.SQL SERVER.SYBASE.INFORMIX和INGRES等. 数据库中常用的编程语言是SQL语言,按其功能可分为四大部分: (1) 数据定义语言(Data Definition Language,DDL),用于定义.撤销和修改数据模式. (2) 数据查询语言(Data Query Languag

Atitit 硬件 软件 的开源工作 差异对比

Atitit 硬件 软件 的开源工作 差异对比 1.1. 模块化,标准化,以及修改的便捷性1 1.2. 生产和发布成本 1 1.3.   3. 入行门槛搞2 1.4.  在软件业极度发达的今天,任何具有良好逻辑思维能力的人只要感兴趣,就可以通过互联网获得足够的教育从而称为一名软件开发人员.2 1.5. Sdx软件定义一切2 1.1. 模块化,标准化,以及修改的便捷性 1. 软件产品都有着定义完整,并且可以随时调整的输入输出. ,这就使得软件的开发人员之间可以仅仅通过定义好的接口来互相合作,而无论

让你提前认识软件开发(32):数据库索引

第2部分 数据库SQL语言 数据库索引 索引在数据库中占有非常重要的地位,它是对数据库表中一列或多列的值进行排序的一种结构.正确使用索引,可快速访问数据库表中的特定信息,进而提高数据库脚本的执行效率. 1. 索引分类 数据库表中经常有一列或几列的组合,其值唯一地标识表中的每一行,该列称为表的主键. 在数据库中,将索引分为三类:唯一索引.主键索引和聚集索引. 唯一索引是不允许其中任何两行具有相同索引值的索引,即索引列的值不允许重复. 主键索引是唯一索引的特定类型,该索引要求主键中的每个值都唯一.

Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725

Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL规则 2 2.1. DSL = 整洁的代码 2 2.2. DSL必须以文本代码的形式出现 2 2.3. DSL的语法应该尽可能地接近英语或者其他自然语言 2 3. DSL 文本形式 or 图形标识 2 4. 实现方式 2 4.1. 2. 管道抽象 2 4.2. 3. 层次结构抽象 3 4.3. 4.