栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSP / Servlet Web应用程序中的后台计时器任务

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP / Servlet Web应用程序中的后台计时器任务

首先,我不会为此使用JSP。那里不是。

使用Java EE 5时,请使用容器提供的作业计划API。详细信息取决于您使用的容器。例如,JBoss AS 5附带了Quartz。或者,当您在JSP /
Servlet之上使用提供作业调度API的框架(例如Spring)时,则应使用它。

如果不存在(例如,您仅使用Tomcat
6),或者想要独立于容器和/或框架,请使用创建

ServletContextListener
一个
ScheduledExecutorService

或者,当您已经在支持EJB 3.1的Java EE 6容器(JBoss AS 6,GlassFish 3,但 不支持 Tomcat
7)上时,最简单的方法就是

@Singleton
使用
@Schedule
方法创建EJB

@Singletonpublic class UpdateSubscriptions {    @Schedule(hour="*/6", minute="0", second="0", persistent=false)    public void run() {        // Do your job here.    }}

而已。无需其他配置。


更新
:根据评论,您正在使用Tomcat(6或7?)。要在每6小时运行一次任务的webapp启动期间启动线程,请使用之前链接的答案中提供的示例,并对

scheduleAtFixedRate()
方法进行以下更改

scheduler.scheduleAtFixedRate(new UpdateSubscriptions(), 0, 6, TimeUnit.HOURS);

该类

UpdateSubscriptions
必须实现
Runnable
,并且实际的工作需要以您所使用的
run()
方法完成
@Override
,就像链接答案中的示例一样。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418869.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号