- 浏览: 761462 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
飞出四季做的茧:
z赞
JAVA日期格式化字符串的24小时制 -
daniaowansui:
亲测,可行!
JS 在open打开的窗口中调用父页面JS方法 -
zh_123:
ie9测试过吗貌似列不能冻结啊!
Css 实现的表头, 表列冻结, 可以超大数据量 -
Jxdwuao:
IXR 写道少年,在哪里混呢?在虹桥机场这边阿, 兄弟你在何方 ...
修改JS文件FF刷新不生效 -
IXR:
少年,在哪里混呢?
修改JS文件FF刷新不生效
1、在WEB.xml添加定时器的执行类配置
<listener> <listener-class> com.cpic.ryx.servlet.TimerListener </listener-class> </listener>
2、监听器类的配置
public class TimerListener extends HttpServlet implements ServletContextListener { private static final long serialVersionUID = 200601509800003l; private static Logger log = Logger.getLogger(TimerListener.class); /** * 初始化定时任务线程 * * @param sce * ServletContextEvent */ public void contextInitialized(ServletContextEvent sce) { log.info("TimerListener[ServletContextListener] initializing..."); try { BatchMain.getInstance().startTask(); } catch (Exception e) { } log.info("...TimerListener[ServletContextListener] initialized"); } /** * 销毁定时任务线程 * * @param sce * ServletContextEvent */ public void contextDestroyed(ServletContextEvent sce) { log.info("TimerListener[ServletContextListener] destoring..."); BatchMain.getInstance().destoryTask(); log.info("...TimerListener[ServletContextListener] destoried."); } }
3、 执行类的配置
public class BatchMain { private static Logger log = Logger.getLogger(BatchMain.class); private static BatchMain instance; // 任务调度定时器 private Timer timer; private Timer billTimer; private BatchMain() { timer = new Timer(); billTimer = new Timer(); } public synchronized static BatchMain getInstance() { if (instance == null) { instance = new BatchMain(); } return instance; } /** * 启动指定任务线程 * */ public void startTask() { TimerTask schemeCancelTask = new SchemeCancelTask(); schemeTimer.schedule(schemeCancelTask, 1000, schemeCancelPeriod * 1000L); log.info("...完成增加方案自动作废任务[schemeCancelPeriod:" + schemeCancelPeriod + " s]."); } /** * 启动指定任务线程 * */ public void destoryTask() { log.info("BatchMain startTask canceling..."); timer.cancel(); billTimer.cancel(); log.info("...BatchMain startTask canceled"); } }
4、定时器任务类的配置:
public class SchemeCancelTask extends TimerTask { private static Logger log = Logger.getLogger(SchemeCancelTask.class); public SchemeCancelTask() { } public void run() { String taskSchemeMaxTime = ConfigUtil .getConfigValue(ConfigUtil.TASK_SCHEME_MAX_TIME); String schemeStartHour = ConfigUtil .getConfigValue(ConfigUtil.TASK_SCHEME_STARTHOUR); String schemeStartMinute = ConfigUtil .getConfigValue(ConfigUtil.TASK_SCHEME_STARTMINUTE); String schemeEndHour = ConfigUtil .getConfigValue(ConfigUtil.TASK_SCHEME_END_HOUR); String schemeEndMinute = ConfigUtil .getConfigValue(ConfigUtil.TASK_SCHEME_END_MINUTE); Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, Integer.parseInt(schemeStartHour)); c.set(Calendar.MINUTE, Integer.parseInt(schemeStartMinute)); Date schemeStartDate = new Date(c.getTimeInMillis()); c.set(Calendar.HOUR_OF_DAY, Integer.parseInt(schemeEndHour)); c.set(Calendar.MINUTE, Integer.parseInt(schemeEndMinute)); Date schemeEndDate = new Date(c.getTimeInMillis()); Date currentDate = new Date(); // 在规定的时间段内运行 if (currentDate.after(schemeStartDate) && currentDate.before(schemeEndDate)) { log.info("方案自动作废线程开始执行....................."); log.info("方案自动作废开始时间:" + DateUtil.toString(schemeStartDate, DateUtil.DATE_FORMAT_DATETIME) + "方案自动作废结束时间:" + DateUtil.toString(schemeEndDate, DateUtil.DATE_FORMAT_DATETIME)); log.info("....方案作废自动线程自动执行结束"); } } }
发表评论
-
NGINX配置简单的MOCK接口
2024-10-15 17:25 0公司中需要对应用进行压测,需要不影响接口返回速度的情况下,返 ... -
RabbitMQ消息关闭自动启动
2024-09-23 11:34 0应用配置的RabbitMQ一启动就注册监听器,这样 ... -
应用内存长期80%不下降
2024-06-21 18:13 0观察到应用JVM长期85%以上,堆内存小幅度波动,没有变化, ... -
内存80告警
2024-05-24 11:08 0网关内存到了85%, 查看近几天内存一直小幅波动,没有下降 ... -
Eclipse设置护眼色
2022-06-17 09:04 0编辑区背景色 1.背景颜色 Window->Pre ... -
java证书安装和更新/删除
2022-01-19 15:02 1100拿到证书,如 ****2019.cer。在WIN下面,双击 ... -
CLASS文件目录不执行更新,改了代码不生效
2021-12-02 16:56 0class目录下不编译, 更新了代码运行还是老的内容执行. ... -
Struts2导出多Excel压缩包
2021-09-28 16:34 0Struts2配置 <result name= ... -
8080端口不能访问
2021-07-21 23:11 0电脑装好之后,本机能访问,外机通过IP不能访问,关闭防火墙可 ... -
JVM设置中文编码
2021-07-05 11:46 0用CXF2.0做了一个接口转发服务,调用后发现中文出现乱码, ... -
自动发布没有通知更新缓存
2021-01-15 10:17 0问题 在成功测试完成平台的一个版本, 测试计划出测试报告 ... -
Eclipse 查看本地历史记录
2020-09-03 16:39 0Eclipse 在更新后,发现本地修改的代码不见了,可以使 ... -
SPRINGBOOT定时器中断不跑了测试
2020-08-05 21:43 0一次发布之后, 定时器不跑了, 追查了TOMCAT 日志, ... -
LOG4J多项目同TOMCAT后面项目不生成日志文件
2020-04-28 10:35 0在项目的TOMCAT里新增加一个监控的项目, 发现监控项目 ... -
DUBBO配置多环境
2019-11-07 16:49 0需要在Springboot2项目中配置DUBBO, Dub ... -
SOAPUI中文乱码
2019-10-23 11:05 0用SOAPUI调用报错UTF-8,参数中有中文。看到返回错误 ... -
JAVA中SET集合判断是否包含的坑
2019-10-22 14:18 0SET集合中存放航班信息对象FlightBoardQuery ... -
定时器任务缓慢
2019-10-09 13:51 0值机系统在国庆前定时器不再执行了。查日志Spring定时任 ... -
NGINX配置
2019-05-28 16:17 0在测试环境LINUX安装后,调试了很久跳转TOMCAT不通 ... -
使用Eclipse调试Spring boot项目时总是直接进入SilentExitExceptionHandler
2019-03-05 10:21 0使用Eclipse调试Spring boot项目时总是直接 ...
相关推荐
总结来说,Java实现定时任务有多种方法,其中在Web应用中使用监听器和`TimerTask`是一种常见的方式。这种方式易于理解和实现,但可能不适合复杂的定时需求。对于更复杂的需求,可以考虑使用`...
在提供的文件名中,`WeatherTimerTask.java`可能包含了实现天气数据更新的定时任务,而`WeatherTimerTaskListener.java`可能是一个监听器,用于监听某些事件并触发任务的执行。在实际项目中,监听器可以是基于事件...
Java定时器是Java平台中一个强大而灵活的工具,能够帮助开发者轻松地实现各种定时任务的需求。通过合理地利用`java.util.Timer`和`java.util.TimerTask`类,可以构建出高效、可靠的定时任务系统。无论是桌面应用、...
在Java编程中,定时器(java.util.Timer)是一个非常实用的工具,它允许开发者安排在未来某一时刻或以特定周期执行任务。这个类提供了计划执行任务的能力,这些任务通常是通过继承TimerTask类的自定义类来实现的。在...
在启动定时器后,可能需要在一个单独的线程中执行计时任务,以避免阻塞主线程。 5. **数据格式与时间处理**: 在显示剩余时间时,需要将总分钟数转换为小时、分钟和秒的格式。这涉及到对时间数据的处理,可以使用`...
Java标准库并未提供内置的定时任务监听器,但可以通过扩展`TimerTask`并添加自定义事件来实现监听功能。例如,可以在`TimerTask`的`run`方法中触发事件,并在其他类中注册监听器来响应这些事件。 7. **并发与线程...
在 `web.xml` 配置文件中,我们需要添加监听器的配置,这样在服务器启动时会自动加载并初始化 `OnLineListener` 类,从而启动定时器。配置如下: ```xml <!-- 监听器配置开始 --> <listener-class>...
为了实现这样的需求,可以利用`java.util.Timer`配合Servlet监听器(`ServletContextListener`)来实现定时任务的自动启动与执行。 ##### 3.2 使用步骤 1. **创建定时器**:在Web应用启动时创建一个`Timer`实例。 2...
总结起来,Java定时器在Web应用中的使用通常涉及到创建一个实现了`ServletContextListener`的类,通过监听器来控制定时器的生命周期,以及创建自定义的`TimerTask`子类来定义需要执行的任务。这种设计模式使得定时...
Java Web定时器是一种在Web应用程序中定期执行特定任务的机制,它主要依赖于Java的`java.util.Timer`类和`java.util.TimerTask`类。在Java Web开发中,定时任务通常用于后台数据处理、定时备份、日志清理等场景。...
在 Java Web 程序中加入定时任务是非常重要的,通常我们需要在特定的时间点执行某些任务,以实现自动化操作。这里介绍两种方法来实现定时任务:使用监听器注入和使用 Spring 注解 @Scheduled 注入。 一、使用监听器...
总之,Java通过Servlet监听器和定时器提供了一种优雅的方式来实现在Web应用程序中自动化执行任务。这种机制允许我们在Web应用启动时自动启动定时任务,并在Web应用关闭时安全地清理资源。通过自定义的`TimerTask`,...
- **定时器监听器**:为了实现在Web应用启动时自动启动定时器,可以使用Servlet监听器。 ```java public class TimerListener implements ServletContextListener { private Timer timer; private SampleTask ...
此外,还可以自定义Trigger监听器,检查当前运行的Job,只有当特定Job组内没有正在执行的任务时,才允许新任务开始。 4. **并行执行**:默认情况下,Quartz允许多个Job并行执行,只要它们不在同一组或满足并行执行...
我们需要为按钮添加动作监听器,比如`ActionListener`。当用户点击按钮时,对应的监听器方法会被调用,执行相应的操作,如添加备忘到列表或触发提醒。 为了保存和加载备忘录,我们可以使用文件系统或数据库。对于...
Quartz和Spring的整合是Java应用中常见的定时任务管理方式,尤其在...在实际项目中,还可以根据需求进行更复杂的配置,例如添加JobListener来监听Job的执行状态,或者使用ThreadPoolScheduler来处理并发执行的任务等。
在Spring中,我们可以使用`@EnableScheduling`注解来开启定时任务的配置,这个注解通常会添加到一个配置类上,这样Spring就会自动创建一个后台任务调度器,来执行所有标记了`@Scheduled`的方法。 `@Scheduled`注解...
在Java编程中,实现任务进度条是一个常见的需求,特别是在处理大量数据、长时间运行的任务或文件上传下载等场景中。进度条能够提供用户友好的界面,显示任务执行的进度,增加用户体验。下面我们将深入探讨如何使用...
Spring定时器Quartz是Java应用中广泛使用的任务调度框架,它允许开发者定义并执行复杂的定时任务。这篇博客可能探讨了如何在Spring框架中集成Quartz,以实现灵活、可扩展的任务调度。 Quartz是一个开源的作业调度...
- 例如,可以通过监听器记录任务执行日志或处理异常。 7. **错误处理**: - Job的`execute()`方法抛出的异常会被捕获并记录,不会影响其他Job的执行。 - 可以通过`misfireInstructions`属性设置触发器在错过触发...