Java定时缓存数据
来源:互联网 发布:视频监控管理平台软件 编辑:程序博客网 时间:2024/05/21 12:47
package com.zwb.test.timeCache;
import java.util.HashMap;
import java.util.Timer;
import java.util.TimerTask;
public class Test
{
/**
* key:phone_num手机号,value:message手机短信验证码
*/
private HashMap<String, String> messageMap = new HashMap<String, String>();
/**
* 定时缓存
* @param phoneNum
* @param message
*/
private void timerCache(String phoneNum, String message)
{
messageMap.put(phoneNum, message);
Timer timer = new Timer();
//60秒后执行任务TimerDeleteTask
timer.schedule(new TimerDeleteTask(phoneNum, timer), 60000);
}
/**
* 定义一个任务,60秒后删除map中对应的key-value值
* @author zhengwb
*
*/
class TimerDeleteTask extends TimerTask
{
private String phoneNum;
private Timer timer;
public TimerDeleteTask(String phoneNum, Timer timer)
{
this.phoneNum = phoneNum;
this.timer = timer;
}
@Override
public void run()
{
messageMap.remove(phoneNum);
timer.cancel();
if (null != timer)
{
timer = null;
}
}
}
/**
* @param args
*/
public static void main(String[] args)
{
Test test = new Test();
String phoneNum = "13111111111";
String message = "123456";
test.timerCache(phoneNum, message);
System.out.println(test.messageMap.get(phoneNum));
try
{
//延时30秒
Thread.currentThread().sleep(30000);
System.out.println("30秒后...");
if (test.messageMap.containsKey(phoneNum))
{
System.out.println(test.messageMap.get(phoneNum));
}
//延时40秒
Thread.currentThread().sleep(40000);
System.out.println("40秒后...");
if (!test.messageMap.containsKey(phoneNum))
{
System.out.println("data delete success");
}
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
import java.util.HashMap;
import java.util.Timer;
import java.util.TimerTask;
public class Test
{
/**
* key:phone_num手机号,value:message手机短信验证码
*/
private HashMap<String, String> messageMap = new HashMap<String, String>();
/**
* 定时缓存
* @param phoneNum
* @param message
*/
private void timerCache(String phoneNum, String message)
{
messageMap.put(phoneNum, message);
Timer timer = new Timer();
//60秒后执行任务TimerDeleteTask
timer.schedule(new TimerDeleteTask(phoneNum, timer), 60000);
}
/**
* 定义一个任务,60秒后删除map中对应的key-value值
* @author zhengwb
*
*/
class TimerDeleteTask extends TimerTask
{
private String phoneNum;
private Timer timer;
public TimerDeleteTask(String phoneNum, Timer timer)
{
this.phoneNum = phoneNum;
this.timer = timer;
}
@Override
public void run()
{
messageMap.remove(phoneNum);
timer.cancel();
if (null != timer)
{
timer = null;
}
}
}
/**
* @param args
*/
public static void main(String[] args)
{
Test test = new Test();
String phoneNum = "13111111111";
String message = "123456";
test.timerCache(phoneNum, message);
System.out.println(test.messageMap.get(phoneNum));
try
{
//延时30秒
Thread.currentThread().sleep(30000);
System.out.println("30秒后...");
if (test.messageMap.containsKey(phoneNum))
{
System.out.println(test.messageMap.get(phoneNum));
}
//延时40秒
Thread.currentThread().sleep(40000);
System.out.println("40秒后...");
if (!test.messageMap.containsKey(phoneNum))
{
System.out.println("data delete success");
}
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
执行结果:
123456
30秒后...
123456
40秒后...
data delete success
- Java定时缓存数据
- java 定时任务,定时删除缓存文件
- 接口数据的缓存及Linux定时缓存数据
- 通过定时任务处理数据缓存
- Java 处理缓存数据
- 浅谈JAVA数据缓存
- Java定时更新数据---定时器
- Java定时更新数据---定时器
- Java定时更新数据---定时器
- 自定义注解实现数据缓存与定时重载
- java/android http数据缓存
- Java可缓存定时线程池(结合CachedThreadPool与ScheduledThreadPool)
- 使用 Java 缓存系统缓存频繁查看的数据
- Java数据缓存实现的核心机制
- 在java中,数据缓存的实现
- Java通过SpyMemcached来缓存数据
- Java中将请求数据存入本地缓存
- java中定时调用任务(如每天定时将日志入库,每天定时备份数据等等)
- Floyd 算法
- VB医院电子病历信息系统
- poj 1422 - 最小路径覆盖
- bootloader
- asp在线书刊模板设计
- Java定时缓存数据
- 数组链表堆栈和队列
- Mysql的GROUP_CONCAT()函数使用方法
- wince下USB设备驱动程序
- matlab中判断两矩阵是否相等
- POJ 1062 昂贵的聘礼 (最短路径)
- Platform Builder
- WinCE 应用程序开机自动运行的又一种方法
- php酒店管理系统