net.sf.jabb.util.stat
Class BasicFrequencyCounter

java.lang.Object
  extended by net.sf.jabb.util.stat.FrequencyCounter
      extended by net.sf.jabb.util.stat.BasicFrequencyCounter

public class BasicFrequencyCounter
extends FrequencyCounter

频次计数器

Author:
Zhengmao HU (James)

Field Summary
protected  PutOnGetMap<Long,AtomicLong> counters
           
protected  long granularity
           
protected  long purgeBefore
           
protected  Object recordLock
           
 
Constructor Summary
BasicFrequencyCounter()
          创建一个不对历史数据进行自动清除,且不针对时间颗粒度 (比如,对于一批短信,对不同长度短信各有多少条进行统计)的实例。
BasicFrequencyCounter(FrequencyCounterDefinition definition)
          根据配置信息创建一个实例。
BasicFrequencyCounter(long granularity, TimeUnit unit)
          创建一个不对历史数据进行自动清除的实例。
BasicFrequencyCounter(long granularity, TimeUnit unit, long purgePeriod, TimeUnit purgeUnit)
          创建一个实例,如果purgePeriod参数不为0则会自动进行历史数据清除。
 
Method Summary
 void count(long when, int times)
          记录在某时刻发生了多少次。
 long getCount(long when)
          获取在某时刻的计数值。
 long getCount(long fromWhen, long toWhen, boolean fromInclusive, boolean toInclusive)
          获得在指定时间范围内的总频次
 Map<Long,AtomicLong> getCounts()
          获得全部计数统计
 void purge(long tillWhen)
          删除掉早于一定时间的记录
 String toString()
          转成String
 
Methods inherited from class net.sf.jabb.util.stat.FrequencyCounter
count, count, count, count, count, getCount, getCount, getCount, getCount, getCount, getCount, getCount, purge, purge, purge, purge
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

counters

protected PutOnGetMap<Long,AtomicLong> counters

granularity

protected long granularity

purgeBefore

protected long purgeBefore

recordLock

protected Object recordLock
Constructor Detail

BasicFrequencyCounter

public BasicFrequencyCounter(long granularity,
                             TimeUnit unit,
                             long purgePeriod,
                             TimeUnit purgeUnit)
创建一个实例,如果purgePeriod参数不为0则会自动进行历史数据清除。

Parameters:
granularity - 计数颗粒度
unit - 颗粒度的单位
purgePeriod - 历史数据的保留时间长度
purgeUnit - 历史数据保留时间长度的单位

BasicFrequencyCounter

public BasicFrequencyCounter(long granularity,
                             TimeUnit unit)
创建一个不对历史数据进行自动清除的实例。

Parameters:
granularity - 计数颗粒度
unit - 颗粒度的单位

BasicFrequencyCounter

public BasicFrequencyCounter()
创建一个不对历史数据进行自动清除,且不针对时间颗粒度 (比如,对于一批短信,对不同长度短信各有多少条进行统计)的实例。


BasicFrequencyCounter

public BasicFrequencyCounter(FrequencyCounterDefinition definition)
根据配置信息创建一个实例。

Parameters:
definition - 配置信息
Method Detail

count

public void count(long when,
                  int times)
记录在某时刻发生了多少次。

Specified by:
count in class FrequencyCounter
Parameters:
when - 发生的时刻
times - 次数

getCounts

public Map<Long,AtomicLong> getCounts()
获得全部计数统计

Returns:
返回的Map的Key是以毫秒为单位的时间,value是计数值。

getCount

public long getCount(long when)
获取在某时刻的计数值。

Specified by:
getCount in class FrequencyCounter
Parameters:
when - 时刻
Returns:
统计数

getCount

public long getCount(long fromWhen,
                     long toWhen,
                     boolean fromInclusive,
                     boolean toInclusive)
获得在指定时间范围内的总频次

Specified by:
getCount in class FrequencyCounter
Parameters:
fromWhen - 开始时间
toWhen - 结束时间
fromInclusive - 是否包含开始时间
toInclusive - 是否包含结束时间
Returns:
统计数

purge

public void purge(long tillWhen)
删除掉早于一定时间的记录

Specified by:
purge in class FrequencyCounter
Parameters:
tillWhen - 清除到哪个时间点为止

toString

public String toString()
转成String

Overrides:
toString in class Object


Copyright © 2012. All Rights Reserved.