基于延迟队列打造精准的订单超时关闭

订单的超时取消很多系统采用定时任务,实际上达不到要求。我用的是延迟队列,但缺点是只实现了基于jvm的,分布式采用的是修改之前去查询订单状态,以及分布式锁获取的方式来控制,这样获得锁的,先去查订单是否已经取消掉,如果没有,就改成去掉。但这种方式虽然效果不错,我对这个半吊子的思路还是不满意的,后面有时间再优化一些,做成分布式的。 整个功能实际就是利用延迟队列的特性。延迟队列有个时间属性,一旦到达这个时

Linux中下载安装Oracle JDK并解决Tar命令解压缩问题

徐叔相信大多数互联网从业者都有使用Linux服务器,本篇徐叔介绍一下如何在Linux中下载并安装Oracle JDK(甲骨文)。 通常来讲我都是去甲骨文官方网站下载JDK,然而在Linux中我们直接使用curl或者wget命令下载甲骨文提供的JDK会莫名其妙的无法解压或者说解压后无法正常运行,这其中的原因我也不过多解释徐叔就直接贴命令。 下载JDK8 wget --no-cookie --no-c

Centos7安装ActiveMQ并进行安全配置

Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。 ActiveMQ特色: 支持Java消息服务 (JMS) 1.1 版本 Spring Framework 集群 (Clustering) 支持的编程语言包括:C、C++、C#、Delphi、Erlang、Ad
Centos7安装ActiveMQ并进行安全配置

浅谈ArrayList的removeAll方法

在开发过程中,遇到一个情况,就是从所有骑手Id中过滤没有标签的骑手Id(直接查询没有标签的骑手不容易实现)。 List<Integer> allRiderIdList = new ArrayList(); // 所有的骑手,大致有23W数据 List<Integer> hasAnyTagRiderId = new ArrayList(); // 有标签的骑手, 大致有21W
浅谈ArrayList的removeAll方法

按指定大小分割List的一种算法

按指定大小分割List的一种算法。直接贴代码了,至于应用场景留给大家自己去思考。 public static List<List<?>> splitList(List<?> list, int len) { if (list == null || list.size() == 0 || len < 1) { return null; } List<L
按指定大小分割List的一种算法

在Spring中使用策略模式

策略模式是对算法的包装,把使用算法的责任和算法本身分隔开,委派给不同的对象管理。策略模式通常把一系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。 策略模式的一般类图:

使用AOP加自定义注解输出日志

什么是AOP、切面编程?想必各位Java Coder早已不陌生,徐叔就不过多解释。直接上代码需要的小伙伴们可以参考。 一、自定义注解 /** * 打印日志注解<br> * 作者:徐承恩<br> * 日期:2016/12/7-17:11<br> */ @Retention(value = RetentionPolicy.RUNTIME) @Target(value