import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import com.huawei.rm9000.pms.amf.ha.util.AmfHALogger;
import com.huawei.rm9000.pms.dmf.delegate.DmfStatistDelegate;
import com.huawei.rm9000.pms.dmf.delegate.DmfTransactionDelegate;
public class StatistBO
{
/* 定时器 */
private Timer timer = new Timer();
/* 周期统计任务 */
private StatistTask task = new StatistTask();
/* 日期对象 */
private Date date = null;
/* 单实例 */
private static StatistBO INSTANCE = new StatistBO();
/**
* 防止实例化
*/
private StatistBO()
{
}
/**
* 获取单实例。
* @return 单实例。
*/
public static StatistBO getInstance()
{
return INSTANCE;
}
/**
* 重启周期更新的Timer
*/
private void restartTimer()
{
// 关闭当前任务
task.cancel();
// 计算下一个定时执行时间
date = getNextStatistDate();
task = new StatistTask();
timer.schedule(task, date);
}
/**
* 启动周期统计功能。
*/
public void periodicStatistStart()
{
//获取首次执行时间,开始执行,测试获取下一个整点时间正确
date = getFistStatistDate();
timer.schedule(task, date);
}
//测试用的方法
public void testStatist()
{
Calendar c = Calendar.getInstance();
int min = c.get(Calendar.MINUTE);
int hour = c.get(Calendar.HOUR);
c.set(Calendar.MINUTE, min + 1);//一分钟后调用
timer.schedule(task, c.getTime());
}
/**
* <p>周期统计Task</p>
*/
public class StatistTask extends TimerTask
{
@Override
public void run()
{
try
{
// 启动周期统计功能。
beginStatist();
// 开启下一次周期更新定时器
restartTimer();
}
catch (Throwable e)
{
AmfHALogger.error(e);
}
}
}
分享到:
相关推荐
单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式
C#单例模式C#单例模式详解C#单例模式详解C#单例模式详解
C++单例设计模式,单例模式 C++单例设计模式,单例模式
单例多例
单例省市级联 级联 单例模式 此例子不仅可以学历单例模式 也可以学习级联下拉的实现方式。
单例模式详解~~单例模式详解~~单例模式详解~~
java Singleton单例模式 java Singleton单例模式
QT 单例
几种单例模式的书写方式
概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷。在本月的专栏中,David Geary探讨了单例模式以及在面对多线程...单例模式的用意在于前一段中所关心的。通过单例模式你可以:
java 单例模式
一个简单的java工程,包含注释,一目了然,其中包含了单例模式的所有实现方式,懒汉式,饿汉式,双重校验,枚举,静态内部类等方式实现单例。
在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这可以节省一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率...
单例及其常用代码,URL编码 %89%B9%E6%AE%,软键盘遮挡,self.view上移
OC单例模式的讲解。二十三种设计模式中的其中一种。
这个讲的是单例模式的多种不同实现方式,希望对单例感兴趣的同学看看
单例模式详解
此示例展示了Qml 的单例模式(类似全局对象,只生成一次实例,可全局使用) surfsky.cnblogs.com
unity中在场景切换时需要经常数据分享并处理,在此分享给大家利用C#模式和Unity模式分别实现的单例共享数据
线程安全的单例模式 线程安全的单例模式 线程安全的单例模式