在线急等队列模型方案

董哥007 2020-07-20 02:19:19
我要实现一个这样的处理模型,关于处理订单的,我想到的是一种队列,但是不知道采用什么好,?

我这个队列模型必须满足以下特点

1.队列元素不重复
2.支持按指定数量获取元素 比如 get(5) 获取这个队列五个元素
3.队列元素不可重复
4.支持消费端(应用程序端,处理超时或者失败)。队列端记录失败前的元素索引位置,以便下次执行,从上个索引+1的位置开始执行来提高处理效率


特别说明,我为啥要get(5)是考虑了我应用程序处理稳定性考虑的,假如我一次性处理很多的话,我怕应用程序会挂了,导致我的程序不可用。另外我的消费端或者处理程序是靠定时任务来驱动执行的。
...全文
2682 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
董哥007 2020-07-21
  • 打赏
  • 举报
回复
谢谢各位了。我需要多去了解
丁劲犇 2020-07-21
  • 打赏
  • 举报
回复
额!这个好多种方法。 最傻的链表容器保顺序,集合容器抗重复,多线程加锁。 也可以用MQ,甚至关系数据库都可以。建一个唯一索引即可。
八爻老骥 2020-07-20
  • 打赏
  • 举报
回复
创建一个静态同步queue不就行了。
maradona1984 2020-07-20
  • 打赏
  • 举报
回复
引用 5 楼 董哥007 的回复:
引用 3 楼 maradona1984 的回复:
兄弟你难道没用过MQ?MQ基本都能满足你的需求的
真没使用过
没用过就去了解呗,只是有些功能门槛较高,并不是你说的那么简单,比如消息最终一致,这些你得理解哪些环节会失败,如何补偿,补偿会不会产生重复消费,等等 如果简单使用的话,手动ack差不多就符合你的需求了,市面上的MQ产品挺多,随便找个理解下
董哥007 2020-07-20
  • 打赏
  • 举报
回复
引用 3 楼 maradona1984 的回复:
兄弟你难道没用过MQ?MQ基本都能满足你的需求的
真没使用过
RockeyCui 2020-07-20
  • 打赏
  • 举报
回复
引用 2 楼 董哥007 的回复:
难啊,我这个队列还是不断有新增元素的,他是动态的,有进去也有出去的
哪个队列不是动态的啊
maradona1984 2020-07-20
  • 打赏
  • 举报
回复
兄弟你难道没用过MQ?MQ基本都能满足你的需求的
董哥007 2020-07-20
  • 打赏
  • 举报
回复
难啊,我这个队列还是不断有新增元素的,他是动态的,有进去也有出去的
RockeyCui 2020-07-20
  • 打赏
  • 举报
回复
redis 的 stream 类型可以哦,你看看这篇博文,参考一下满不满足你的需求。

https://zhuanlan.zhihu.com/p/60501638

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧