July 15, 2018

Quartz分享

1. What

1. 简单介绍

Quartz是由OpenSymphony公司开源的一个定时任务调度框架,完全由Java开发。有以下的特点:

强大的调度功能。支持丰富多样的调度方法,可以满足各种常规及特殊需求。

灵活的应用方式。支持任务和调度的多种组合方式,支持调度数据的多种存储方式。

分布式和集群能力。

容易与其他框架集成,使用简单。

Quartz支持几乎以下所有的触发方式

在一天中的任意时刻(可以精确到毫秒)。

一周中特定的一些天。

一个月中特定的一些天。

一年中特定的一些天。

不在日历列表中注册的一些天(比如节假日)。

循环特定的次数。

无限循环。

按照一定的时间间隔循......

April 21, 2018

Java8收集器学习

·收集器是一种通用的,从流生成复杂值的结构。只需要把生成器作为参数传给collect()方法,任何流都可以使用它。

Java8中所有的收集器都是位于java.util.stream.Collectors这个包下面。

转换成其他集合

Collectors.toList()收集器把流中数据转换成List对象。

Collectors.toSet()收集器把流中数据转换成Set对象。

Collectors.toCollection()收集器把流中数据转换成Collection对象。

toCollection()收集器可以接受一个函数作为参数,用来指定生成的集合类型。比如指定生成的集合是TreeS......

April 07, 2018

一个简单的任务调度系统的实现

在实际工作中经常会需要定时任务调度,比如每隔5分钟检查下订单的状态,每天早上发送8点发送邮件等等。

April 07, 2018

Quartz源码分析

第一部分:What

暂略

第二部分:How

暂略(主要介绍Quartz的基本使用、几个基本组件以及各个组件之间的关系)

第三部分:Why

从上文可以知道,使用Quartz的入口点是Scheduler,那么我们就从Scheduler开始分析。

3.1 Scheduler

Scheduler是个接口,定义了一个最基本的调度器应该提供的能力。

Quartz提供了多个Scheduler的实现,但是我们最常用的就是StdScheduler,所以我们主要从StdScheduler开始分析。

上面的demo中我们首先通过代码

Scheduler scheduler = StdSchedule......

July 30, 2017

IDEA搭建Zookeeper源码阅读环境

Zookeeper是当前业界最广泛使用的一个分布式协调组件,能够实现诸如统一命名服务、状态同步服务、集群管理、分布式锁、分布式应用配置项的管理等等功能。

工作中经常用到Zookeeper,作为一个充满好奇心的程序猿,决定来研究研究Zookeeper的源代码,第一步要做的事情就是在IDE里面搭建好源码阅读环境。但是当把源码clone到本地用IDEA打开的时候发现到处都是飘红,各种问题。后来查了下,发现Zookeeper居然还是使用Ant管理项目,用Ivy下载依赖,没办法直接用IDEA打开。

那么应该怎么解决呢?简单。既然IDEA不能直接打开,那么我们可以手动拷贝源代码。

方法

先手动把......