首页 > 其他分享 >JDK延迟队列 DelayQueue

JDK延迟队列 DelayQueue

时间:2024-08-29 16:14:39浏览次数:6  
标签:JDK 队列 过期 丢失 JVM DelayQueue

image
DelayQueue是JDK提供的一个无界队列,我们可以看到,DelayQueue队列中的元素需要实现Delayed,它只提供了一个方法,就是获取过期时间。

用户的订单生成以后,设置过期时间比如30分钟,放入定义好的DelayQueue,然后创建一个线程,在线程中通过while(true)不断的从DelayQueue中获取过期的数据。
优点:不依赖任何第三方组件,连数据库也不需要了,实现起来也方便。
缺点:因为DelayQueue是一个无界队列,如果放入的订单过多,会造成JVMOOM。DelayQueue基于JVM内存,如果JVM重启了,那所有数据就丢失了。
总结:DelayQueue适用于数据量较小,且丢失也不影响主业务的场景,比如内部系统的一些非重要通知,就算丢失,也不会有太大影响。

标签:JDK,队列,过期,丢失,JVM,DelayQueue
From: https://www.cnblogs.com/sitting-on-the-clouds/p/18386922

相关文章

  • 学习笔记2——队列(C++版)
    注意了,这里说的队列并不是STL容器库里面的queue。像链表、队列、栈、二叉树其实是一种数据结构,而vector、queue、set等是容器,是不同的概念。队列的实现可以有很多方式,可以用结构体内储存数组来实现,也可以用结构体内储存结构体来实现,我们这里选择后者。如何实现一个队列1.......
  • 数据结构(C)---双端队列(Deque)
    在使用本博客提供的学习笔记及相关内容时,请注意以下免责声明:信息准确性:本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。非专业建议:博客中的内容仅供参考,不能替代专业人士的意见和建议。在做出任何重要决定之前,请咨询相......
  • 系统编程-消息队列
    消息队列目录消息队列引入一、消息队列的特点二、使用指令查看消息队列三、使用消息队列进行通信的步骤1、获取键值2、创建或获取消息队列id3、使用消息队列进行数据的传输4、msgrcv--从消息队列中读取数据5、消息队列的多种操作函数引入--进程间通信(IPC)......
  • 【阅己书城】Maven setting.xml配置阿里云加速,JDK8编译
    在mavensetting.xml配置文件配置1、配置阿里云镜像<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexusaliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</......
  • 消息队列MQ的使用
    承接我的另一篇博客 消息队列MQ-CSDN博客启动服务1.启动mqnamesrv2.启动mqbrokermqbroker-n127.0.0.1:9876应用1.普通消息同步发送publicclassEasyA{publicstaticvoidmain(String[]args)throwsMQClientException,MQBrokerException,RemotingExce......
  • 单调队列--滑动窗口最大值(leetcode23)
    目录一、单调队列介绍二、题目应用1.题目描述2.解题碎碎念3.代码示例三、扩展1.与优先队列区别2.单调队列其他题目一、单调队列介绍单调队列是一种特殊的队列数据结构,它能够在常数时间内找到队列中的最值。单调队列可以用来解决一些与最值相关的问题,例如滑动窗口最......
  • MQ根据正常队列、死信队列来实现延迟队列的场景
     1、在RabbitMQ的管理后台新建交换机(exchange);名称(Name):**ParkingExchange**类型(Type):**fanout**持久化(Durability):**Durable**2、在RabbitMQ的管理后台新建队列(queue);名称(Name):**ParkingQueue**类型(Type):**Classic**(新版本RabbitM......
  • 消息队列MQ
    MQ概述1.MQ简介MQ,MessageQueue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。2.MQ用途限流削峰MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求......
  • 算法与数据结构——队列
    队列队列(queue)是一种遵循先入先出规则的线性数据结构。队列模拟了排队现象,即新来的人不断加入队列尾部,而队列头部的人逐个离开。如图所示,我们将队列头部称为“队首”,尾部称为“队尾”,将把元素加入队列尾部的操作称为“入队”,删除队首元素的操作称为“出队”。队列常用操作......
  • bfs+双端队列
    算法介绍\(bfs+\)双端队列是一种单源最短路算法,适用于边权为\(0\)或\(1\)的图中。时间复杂度为\(O(n)\)。算法原理分析算法的整体框架与普通\(bfs\)求最短路类似,只是根据边权做了分类讨论,如果边权为\(1\),则将邻居节点压到队列尾部,反之,压到队列首部。当每个节点第一次出......