项目有个简单的小需求就是在考试时间结束后把待考的用户状态修改为缺考,可以利用TimerTask来实现,在java中实现定时执行任务的功能,主要用到Timer和TimerTask类。其中Timer是用来在一个后台线程按指定的计划来执行指定的任务。

在新增考试的时候添加一个定时任务:

// 添加执行任务(延迟 xxx秒执行,)

timer.schedule(timerTask,(timestamp-(epochSecond*1000)));

public void performTimerTask(Long timestamp,Long id){long epochSecond = LocalDateTime.now().atZone(ZoneId.of("Asia/Shanghai")).toInstant().getEpochSecond();TimerTask timerTask = new TimerTask() {@Overridepublic void run() {//获取参考人员记录列表,将待考修改为缺考List<ExamRecordVo> examRecordVos=examRecordBiz.getExamRecordList(id);for (int i = 0; i <examRecordVos.size() ; i++) {//修改用户考试状态ExamRecordVo recordVo = examRecordVos.get(i);if(recordVo.getStatus()==ExamStatusEnum.WAIT.getCode()){//待考ExamRecord examRecord =new ExamRecord();examRecord.setId(recordVo.getRecordId());examRecord.setStatus(ExamStatusEnum.ABSENT.getCode());//缺考examRecordBiz.update(examRecord);}}}};Timer timer = new Timer();timer.schedule(timerTask,(timestamp-(epochSecond*1000)));}

Java利用TimerTask执行一次定时任务相关推荐

  1. centos7 利用 crontab 执行 定时任务 计划任务

    crond是什么? crond 和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于 ...

  2. [JavaME]利用java.util.TimerTask来做Splash Screen的N种方法

    请参考java.util.TimerTask. TimerTask is something like Timer in VisualBasic. You can sepcify a time per ...

  3. 怎么在java上运行服务器,用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎样做???...

    这个是我在网上找的不知道是不是你要的: java定时任务Timer 关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然提到了定时任务,索性在这里一起解决了.设置定时任务很简单,用Timer类就 ...

  4. java实现自动任务_Java实现定时任务的三种方法

    普通thread 这是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果.这样可以快速简单的实现,代码如下: public class Tas ...

  5. java获取正在执行的timer_Java线程与并行编程(一)

    你好,我是goldsunC 让我们一起进步吧! 进程与线程 进程是程序的一次动态执行过程,它对应从代码加载.执行到执行完毕的一个完整过程.这个过程也是进程本身从产生.发展到消亡的过程,同一段程序,可以 ...

  6. Java指定时间执行任务

    Timer和TimerTask 有如下好处: 1.当启动和取消任务时可以控制 2.第一次执行任务时可以指定你想要的delay时间 在实现时,Timer类可以调度任务,TimerTask则是通过在run ...

  7. java如何写一个简单的定时任务?

    使用java自带类Timer 通过import java.util.Timer导入Timer类,定时任务实现通过Timer的scheduler方法,scheduler方法包括三个入参,分别是定时任务, ...

  8. Java程序定时执行shell脚本

    第一次写博客,写的不好还请见谅. 之前在Linux环境中想定期执行某个脚本,第一反应就是将这个task加入到crontab里(crontab的知识点这里就不具体介绍了),当然,这种做法一般情况下是可行 ...

  9. JAVA 文件编译执行与虚拟机(JVM)简单介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...

最新文章

  1. Linux内核情景分析之异常访问,用户堆栈的扩展
  2. 脉冲神经网络在目标检测的首次尝试,性能堪比CNN | AAAI 2020
  3. Oracle SQL 空值排序(Nulls)
  4. another app is currently hold yum lock问题
  5. kafka与zookeeper版本对应关系表
  6. wxWidgets:wxPanel类用法
  7. agv系统介绍_重载AGV小车主要结构及导航原理是什么?
  8. 用CSS让DIV上下左右居中的方法
  9. Python基于迁移学习的交通信号识别实战【图像多分类任务】【实测准确度超过96.7%】
  10. HikariCP连接池
  11. qemu指定CPU型号
  12. codeforces 438D
  13. VSPD+XCOM+Proteus仿真stm32串口通信
  14. 自己搭建FRP服务器,速度不错!
  15. BIG DATA 神奇的大数据 - Hadoop(Linux)环境搭建与部署
  16. JVM帝国一日游【穿越小说】
  17. 2022全新微信公众号无限回调授权系统源码
  18. [音乐下载] [115永久续期] 最终心跳回忆。。。(11G)
  19. 微信机器人 ipad协议_微信HD for iPad版怎么不越狱安装【详解】
  20. 绩效面谈中的优质提问(一)

热门文章

  1. 郑渊洁作品精彩语言辑录[转载]
  2. android获取控件的id(标识符)-根据控件id获取对应的值或控件名字-动态获取R.string的值
  3. 程序员鼓励师,六年前昙花一现的职业,现在居然还存在?
  4. 第五届计算和通信技术国际会议【1月大连】
  5. 指定IPv6服务器位置,思科IPv6技术,用prefix delegation获得ipv6地址
  6. Spring注解@Qualifier的详细用法你知道几种「扩展点实战系列」- 第444篇
  7. SuperMap 平台中三维模型烘焙的处理步骤及应用
  8. 知识到底如何变现?多种模式你选哪一个
  9. fabric-java-sdk ——建立简单的请求(脱离配置)
  10. 使用lnkscape制作简单名字logo设计