javaWeb监听器结合定时器实现定时执行任务
来源:互联网 发布:求迅龙数据恢复注册机 编辑:程序博客网 时间:2024/06/12 20:23
java监听器
通过监听器可以自动的激发一些操作,比如监听在线人数;
监听器接口有:
ServletContextListener——监听ServletContext对象;
HttpSessionListener——监听session对象;
ServletRequestListener——监听request对象;
java监听器的使用步骤
1.确定监听的对象,实现对应接口,并重写接口中的方法;
2.在web.xml中配置该监听器;
java定时器
在应用中,经常需要定期的执行某个操作,此时利用java定时器,java.util.Timer工具类实现定期执行该任务。
java定时器的使用步骤
1.创建该定时器的类,实现TimerTask接口,重写run方法,run方法中具体写该操作;
2.创建Timer对象,调用schedule()方法,设定定时执行的规则,包括多久执行一次,具体执行哪个任务;
例子:监听器与定时器结合周期性执行任务
实现每天早上7点定时执行某任务和每一个小时,每二十分钟分别执行不同的任务
1.创建监听器类CrawlListenner
public class CrawlListenner implements ServletContextListener { private static final long PERIOD_DAY = 24 * 60 * 60 * 1000; @Override public void contextInitialized(ServletContextEvent arg0) { Timer timer = new Timer(); CrawlTask task = new CrawlTask(); CrawlDataSumTask dataTask = new CrawlDataSumTask(); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 7); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date date = calendar.getTime(); // 此时要在第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。 if (date.before(new Date())) { calendar.add(Calendar.DAY_OF_MONTH,1); date =calendar.getTime(); } // 定点执行,每隔一天重复的执行 timer.schedule(dataTask, date,PERIOD_DAY); // 隔一段时间执行一次 timer.schedule(task, 0, 1 * 60 * 1000); } @Override public void contextDestroyed(ServletContextEvent arg0) { }</pre><p><span style="font-size:14px;"></span></p><p><span style="font-size:14px;">2.配置web.xml文件,添加监听器</span></p><p><span style="font-size:14px;"></span><pre name="code" class="java"> <listener> <listener-class>com.listenner.CrawlListenner</listener-class> </listener>3.创建定时器类,继承TimerTask,重写run方法,run方法中就是定期执行的任务
<span style="font-size:14px;">//每20分钟、60分钟执行一次public class CrawlTask extends TimerTask { private int count = 0; @Override public void run() { count++; CrawlAllListenner listen = null; if (count % 21 == 0) { listen = new CrawlMasterListenImpl(); } if (count % 61 == 0) { listen = new HbaseDataListenImpl(); } if (listen != null) { listen.crawlListener(); } }}</span><span style="font-size:14px;">//每天七点执行public class CrawlDataSumTask extends TimerTask { @Override public void run() { CrawlAllListenner listen = new HbaseDataListenImpl(); listen.dataSumListenner(); }}</span>
1 0
- javaWeb监听器结合定时器实现定时执行任务
- 监听器实现定时任务(java定时器)
- 使用监听器执行定时任务
- Java监听器执行定时任务
- Java监听器执行定时任务
- javaweb实现定时任务
- javaweb 每天定时执行任务
- Spring 定时器 定时执行任务
- java监听器实现定时任务
- Java定时器实现定时任务
- java 定时执行任务,java定时器
- Asp.net定时执行任务(定时器改良)
- jsp定时器,web程序定时执行任务
- centos 定时器crontab 定时执行任务
- java web使用监听器实现定时周期性执行任务的功能
- 线程实现定时执行任务
- ThinkPHP实现定时执行任务
- java 内置定时器实现定时任务和自定义定时任务
- 在树莓派2为django配置uwsgi和nginx服务
- Volley读取文档和图片
- 和我一起学习avalon(持续更新)
- iOS Crash闪退日志获取和上传至服务器(NSSetUncaughtExceptionHandler)
- HDU5533 Dancing Stars on Me(极角排序+判断正n边形)
- javaWeb监听器结合定时器实现定时执行任务
- 杭电1599 find the mincost route
- 使用框架的好处,hibernate缓存
- iOS学习笔记--03 UITableView相关
- SIGCHLD和waitpid的使用
- nvidia自动更新带来的问题
- Struts2常见错误-No result defined for action XXX and result input
- Android Studio 快捷键
- 一次完整的HTTP请求所经历的7个步骤