订单自动过期实现方案
订单自动过期时实现方案具体是因为要做的项目需要做一个过滤过期任务的方案:一开始考虑做定时任务,但发现定时任务并不能完成要求,因为定时任务只能是静态某一时间进行遍历数据库进行修改操作,一般用于清楚数据库缓存等,所以考虑做延时队列。1. 延时队列基于JDK的实现方法,将未支付的订单放到一个有序的队列中,程序会自动依次取出过期的订单。如果当前没有过期的订单,就会阻塞,直至有过期的订单。由于每次只处理过期的订单,并且处理的时间也很精准,不存在定时调度方案的那两个弊端。实现:1.首先创建一个订单类OrderDelayDto需要实现Delayed接口。然后重写getDelay()方法和compareTo()方法,只加了订单编号和过期时间两个属性。这两个方法很重要,getDelay()方法实现过期的策略,比如,订单的过期时间等于当前时间就是过期,返回负数就代表需要处理。否则不处理。compareTo()方法实现订单在队列中的排序规则,这样即使后面加入的订单,也能加入到排序中,我这里写的规则是按照过期时间排序,最先过期的排到最前面,这一点很重要,因为排在最前面的如果没有被处理,就会进入阻塞状态,后面的 ...
骚话合集
骚话合集(=-=)作者:言予链接:https://www.zhihu.com/question/347077309/answer/1414532301来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1.人是不能太闲的,闲久了,努力一下就以为是拼命。
2.我或许败北,或许迷失自己,或许哪里也抵达不了,或许我已失去一切,任凭怎么挣扎也只能徒呼奈何,或许我只是徒然掬一把废墟灰烬,唯我一人蒙在鼓里,或许这里没有任何人把赌注下在我身上。无所谓。有一点是明确的:至少我有值得等待有值得寻求的东西。 ——村上春树 《奇鸟行状录》
3.沉不下心看书,浮跋和焦虑,都是因为年纪渐长,不信正道而太重功利导致的。 真正坚持到最后的人靠的不是激情,而是恰到好处的喜欢和投入。
4.对未来的真正慷慨,是把一切都献给现在。 ——阿尔贝・加缪 《反 ...
Redis
一、Nosql概述1、单机Mysql时代90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题:
数据量增加到一定程度,单机数据库就放不下了
数据的索引(B+ Tree),一个机器内存也存放不下
访问量变大后(读写混合),一台服务器承受不住。
2、Memcached(缓存) + Mysql + 垂直拆分(读写分离)网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们可以使用缓存来保证效率!
优化过程经历了以下几个过程:
优化数据库的数据结构和索引(难度大)
文件缓存,通过IO流获取比每次都访问数据库效率略高,但是流量爆炸式增长时候,IO流也承受不了
MemCache,当时最热门的技术,通过在数据库和数据库访问层之间加上一层缓存,第一次访问时查询数据库,将结果保存到缓存,后续的查询先检查缓存,若有直接拿去使用,效率显著提升。
3、分库分表 + 水平拆分 + Mysql集群
4、如今最近的年代如今信息量井喷式增长,各种各样的数据出现(用户定位数据,图片数据等),大数据的背景下关系型数据库(RDB ...
少年二字,应与平庸相斥
听闻少年二字,应与平庸相斥。 以后会走上怎样的道路尚不确定,只知年少的我们,生活中有诗歌和远方,脚下有坚实的土地,头顶有浩瀚的星空。宁欺白须公,莫欺少年穷,我们有着无限的可能性。
在高中,总有人在你身后催促着你前进,奔跑途中,身边也是与你一起冲向梦想的同学,但到了大学,似乎一切都变了。一个人在外,没有人在你身后看着你,身边的人也有了各自的目标和方向,大一的我迷茫了……
大一上,我上课玩手机,回寝室也是玩手机。点外卖,瘫坐在吊椅上无所事事,成了常态,看着室友自律的样子,也曾想做出过改变,但还是挡不住外在的诱惑(也许还幼稚),就这样浑浑噩噩的过了半年,最终成绩也只是中等。大一下,疫情爆发了,不得不在家里上网课,这导致我更加肆无忌惮的放松自己,慢性死亡,上网课没精神,看小说,几乎不出屋子,时时刻刻都在床上。这就是我的大一。
大二上,惊讶的发现室友有了惊天的变化,在我慢性死亡的时候,他有了自己的目标,并且为此做出了巨大的改变和努力,coding能力变得很强(发量可以看出),自己去加了学校的工作室,做了很多的业务,也得了很多 ...
Java集合框架
Java 集合框架
接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象
实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。
算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
一、Set和List的区别:
Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素
Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>
List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector>
二、如何使用迭代器:遍历 ArrayList123 ...
青鸢面基大会
青鸢面基大会10.30青鸢工作室面基大会。西安电子科技大学青鸢工作室nb!18:30——19:00是学长树总给大家说一下工作室的代码规范。
之后的聚餐才是真正的重点!因为有美团大四工作学长和字节大三实习学长来和我们一起聊天。
虽然一开始大家都不是很熟悉的时候,没聊啥,但随着学长们分享去大场工作的经验,大家的兴趣也都提了起来,对大厂有抑制不住的幻想hhhhh,也了解到很多的神。
感觉这次聚餐之后,对字节有了更多的期望,一人一导师的制度真的感觉很好,然后在知乎上看到在字节成长度会真的很高,所有现阶段目标就是为了字节而努力,那个大三学长也是十月份才开始觉醒。
就感觉对未来充满了希望和有了目标吧。qwq。
2020.11.12更新:也算是对业务有了最基本的了解,也写了几个功能,回头看到了学长给的建议,还是想写下来:
首先:面试的准备工作
1、去字节招聘网站,搜索日常实习生,找java 岗位要求,多看几个岗位要求,大概就知道现在大厂要求你干嘛了,然后再根据你不会的 去针对学习。
2、背高频面试题
其次,是坚持二字尤为重要!!
最后,学习的路
工作室的业务,做一两 ...