概述
以下所有的task都是TimerTask的子类
所有time都是Date类型的日期
所有delay和period都是long类型的延迟时间, 单位为毫秒
timer.schedule(task, time); 在time时间执行task任务1次
timer.schedule(task, delay); 在延迟delay毫秒后执行task任务1次
timer.schedule(task, firstTime, period); 在firsttime时间执行task1次,之后定期period毫秒时间执行task, 时间如果为过去时间, 不会执行过去没有执行的任务, 但是会马上执行
timer.schedule(task, delay, period); 在延迟delay后执行task1次,之后定期period毫秒时间执行task, 时间如果为过去时间, 不会执行过去没有执行的任务, 但是会马上执行
timer.scheduleAtFixedRate(task, firstTime, period); 在firstTime时间执行task一次, 以后每隔period毫秒执行1次, 时间如果为过去时间, 会执行过去没有执行的任务, 但是会马上执行
timer.scheduleAtFixedRate(task, delay, period); 在delay毫秒后执行task一次, 以后每隔period毫秒执行1次, 时间如果为过去时间, 会执行过去没有执行的任务, 但是会马上执行
实际应用方法,根据需求进行更改
if (!timeTask){//启动定时任务,2小时一次把缓存数据写入数据库
timeTask = true;
new Timer().schedule(new TimerTask() {
@Override
public void run() {
log.info("Redis 数据写入数据库,二十分钟一次---开始");
List<TCommentLike> all = TCommentLike.dao.findAll();
HashMap<String, String> map = new HashMap<>();
for (TCommentLike like : all) {
map.put(String.valueOf(like.getLikedId())+like.getLikeId(),like.getStatus()+"_"+like.getId());
}
//投诉类型,点赞
for (String key : Redis.use().keys("LIKE_Complaint*")) {
String s1 = getSplitNum(key, 3);
String s2 = getSplitNum(key, 4);
String value = Redis.use().get(key);//Strings,value内存储点赞时间
TCommentLike like = new TCommentLike();
like.setLikedId(Integer.valueOf(s1));
like.setLikeId(Integer.valueOf(s2));
like.setType("0");
like.setStatus("0");
like.setCreateTime(formatter.parse(value,new ParsePosition(0)));
String s = map.get(s1 + s2);
if (StrKit.notBlank(s) && "1".equals(getSplitNum(s,1))){
like.setId(Integer.valueOf(getSplitNum(s,2)));
like.update();
}else if (StrKit.isBlank(s)){
like.save();
}
String num = Redis.use().get("LIKE_Num_Complaint_" + s1 );
if (num != null){
TComplaint.dao.updateLikeNum(Integer.valueOf(s1), Integer.valueOf(num));
Redis.use().del("LIKE_Num_Complaint_" + s1);
}
Redis.use().del(key);
}
log.info("Redis 数据写入数据库,二十分钟一次---结束");
}
}, 1200000 , 1200000);//60000 = 1分钟
// 在延迟delay后执行task1次,之后定期period毫秒时间执行task,
// 时间如果为过去时间, 不会执行过去没有执行的任务, 但是会马上执行
}
最后
以上就是含蓄红牛为你收集整理的Timer定时器的全部内容,希望文章能够帮你解决Timer定时器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复