2017年11月21日,周二晚上8点30分,7年Java开发经验,曾就职一线教育集团Java培训高级讲师,现就职硅谷中国系统架构师的Alpha带来了主题为《如何用 Java 实现Web应用中的定时任务?》的交流。以下是主持人maicky整理的问答实录,记录了作者和读者问答的精彩时刻!
内容提要:
请问你日常工作中使用的是Timer还是Quartz,用在什么地方,可以叙述一下吗?
使用Timer应注意到的问题?
Quartz的实现原理及运行过程是什么?
在实际应用中,除了要具备使用上述定时任务的能力,还有个问题,就是定时任务的要求有时候比较复杂。怎么办?
问:请问您日常工作中使用的是Timer还是Quartz,用在什么地方,可以叙述一下吗?
答:在我目前的工作中,有多个项目中应用到了该门技术。而且随着业务的不断增多,会有不同的同事在里面进行添加。然后随着时间的推移,我们的项目中的定时任务越来越多,而且A添加一个,B添加一个,并且这些定时任务是和原来的项目在一起的,变的十分的臃肿。最后,我们给我们这些项目进行了瘦身。将所有项目中的定时任务都抽取出来,然后创建专门的定时任务去完成。
我在日常工作中使用的是Quartz,首先,它是开源的,并且这个框架非常的成熟,有很多的使用者,而且在互联网上有很多的相关资料。在我的日常工作中,有部分的功能是使用Quartz这个框架来完成的,因为涉及到这样的定时任务比较多,譬如移动行业的每天的对账任务,每天的数据核准,还有医药行业项目中,每天定时生成挂号网站的医生排班情况,都是使用它来完成的。而且我们将我们项目中所有涉及到定时的模块抽取出来,按照行业不同创建专门的定时任务项目来维护。