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