如何在特定时间销毁对象数据

时间:2014-09-03 05:10:03

标签: java multithreading singleton

我有一个实际存储用户活动的单例对象。我想在特定时间(每晚12点)删除这些数据。我想知道如何通过运行不同的线程来实现这一目标。

2 个答案:

答案 0 :(得分:0)

向返回上次运行日期的单例添加方法:

static Date lastRun = new Date(); //when the class initializes

Date lastDateRan() {
    return lastRun;
}

然后添加另一种方法来检查今天是否> lastRun(注意只检查日期 - 不是时间/小时 - 如果您决定使用TimeStamp或任何其他库)。

每当调用对象时,请检查:

if (today > lastRun) {
    lastRun = today;
    // and clean the object.
}

它不会在午夜准确地运行,但它会产生完全相同的效果! (午夜之后的第一个电话将获得"新鲜的"数据)

答案 1 :(得分:-1)

您可以使用以下代码:

new java.util.Timer().schedule( 
    new java.util.TimerTask() {
        @Override
        public void run() {
              Object_name.close   //your code to cleanup object
        }
    }, 
    12*60*60*1000  /*time after which it will run again*/ 
 );