`

java中timmer和quartz的使用

 
阅读更多

 做了不到两天,第一天基本上没有弄出来,第二天一上班,一早上就做出来了,终于完成了对时间的控制,使用的是webwork+Spring+hibernate框架,要实现的效果是,当web容器启动时,做一个定时器,自动加载某一个在action中注入的方法。

如果要对某个时间,比如说每天几点,每月几号几点,加载一个注入过的方法那么最好的选择就是quartz,我也是在这个基础上开始的,因为他是Spring自带的一个定时器,非常好用简单。

 

开始代码吧:

sping中的文件

如下图



 然后在展示java类


 

 

 

 

在java类中,JobAction继承了 QuartzJobBean接口,然后重写了

protected void executeInternal(JobExecutionContext arg0){}

方法。

可以看见我的类里出现了一个ReceivingAction的类,这是我action中的一个类,他继承了ActionSupport,然后在这个类里有一个updateAllInvoiceStorage();方法,这个方法里有很多都是在 ReceivingAction中注入过,所以我需要在JobAction这个内里调用,所以我就使用了<entry key="re"><ref local="ReceivingAction"/></entry>这样一个属性进行了配置,上图都有,

这就是一个quartz的定时查询配置。

 

 

 

 

 

 

 

 

第二个方法,使用timer

 

直接图片展示代码

 

web.xml中配置

 

 

java 类



 

 

 

当web容器启动时就会自动启动监听器,这样就可以查看web.xml文件配置,然后知道相对应的java类,非常简单,只需要拷贝就可以测试。

 

 

附表:
"0 0 12 * * ?" 每天中午12点触发 
"0 15 10 ? * *" 每天上午10:15触发 
"0 15 10 * * ?" 每天上午10:15触发 
"0 15 10 * * ? *" 每天上午10:15触发 
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发 
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 
"0 15 10 15 * ?" 每月15日上午10:15触发 
"0 15 10 L * ?" 每月最后一日的上午10:15触发 
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 

   每隔5秒执行一次:*/5 * * * * ?

   每隔1分钟执行一次:0 */1 * * * ?

   每天23点执行一次:0 0 23 * * ?

   每天凌晨1点执行一次:0 0 1 * * ?

   每月1号凌晨1点执行一次:0 0 1 1 * ?

   每月最后一天23点执行一次:0 0 23 L * ?

   每周星期天凌晨1点实行一次:0 0 1 ? * L

 

 

  • 大小: 7.6 KB
  • 大小: 8.9 KB
  • 大小: 15.9 KB
  • 大小: 1.5 KB
  • 大小: 8.9 KB
  • 大小: 6.9 KB
分享到:
评论

相关推荐

    Spring 使用Timer quartz区别

    在处理定时任务时,Spring提供了两种常见的解决方案:`java.util.Timer` 和 Quartz。这两个工具各有特点,适用于不同的场景。下面我们将深入探讨它们的区别。 首先,`java.util.Timer` 是Java标准库中的一个简单...

    spring timer、quartz俩种任务调度

    在Java世界中,任务调度是实现自动化业务流程和批处理任务的关键部分。Spring框架提供了对定时任务的强大支持,包括内置的`Spring Timer`和集成第三方的`Quartz Scheduler`。这两种方式都允许开发者灵活地安排和执行...

    小议时序调度Timer和Quartz

    "小议时序调度Timer和Quartz"这个主题主要关注Java平台上的两种常见定时任务框架:Java内置的`java.util.Timer`类和开源的Quartz库。 首先,让我们详细探讨一下`java.util.Timer`。这个类是Java标准库的一部分,它...

    java中Timer定时器的使用

    总的来说,`Timer`和`TimerTask`是Java中实现简单定时任务的便利工具,但在高并发、高性能的场景下,可能需要考虑使用更强大的调度库,如`Quartz`或`Spring Framework`中的`ScheduledExecutorService`。

    Java关于时间调度的几种实现方(Timer Quartz Spring)

    本篇文章将深入探讨Java中的三种主要时间调度实现:`Timer`、`TimerTask`、以及第三方库`Quartz`和`Spring`的定时任务功能。 ### 1. Java `Timer` 和 `TimerTask` `java.util.Timer` 类提供了一个调度任务的方法,...

    spring定时器 Spring定时器的两种实现方式Java的Timer类和OpenSymphony的Quartz。

    Spring框架提供了两种方式来处理定时任务:Java内置的`Timer`类和第三方库OpenSymphony的Quartz。下面将详细介绍这两种实现方式。 ### 1. Java `Timer` 类 Java `java.util.Timer` 类是Java标准库中的一个轻量级...

    Quartz--JAVA定时任务\Java应用:Java调度任务和Spring Quartz (1)

    在Quartz中,作业(Job)是需要执行的任务,它实现了`org.quartz.Job`接口或其子类,例如`QuartzJobBean`。触发器(Trigger)则是定义任务执行的时间规则,它可以是简单触发器(SimpleTrigger)或cron触发器...

    Spring的定时任务开发及对Quartz和Timer支持

    在Spring中使用Quartz,可以通过`org.springframework.scheduling.quartz.SchedulerFactoryBean`配置Quartz实例,并将Spring的bean作为job来执行。这样可以利用Spring的依赖注入,使任务代码更加简洁和可测试。 另...

    Java里timer执行定时任务

    例如,可以在 `init()` 方法中使用 `Timer` 或者使用 Servlet 容器支持的定时任务机制,如Quartz Scheduler 或 Spring 的 `@Scheduled` 注解。这种方式更适用于企业级应用,因为它能够更好地集成到现有的应用环境中...

    Spring定时器实例(Java的Timer类和OpenSymphony的Quartz)

    Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。

    Spring的quartz和Timer实现定时

    在Java世界中,任务调度是十分重要的,Spring框架提供了多种定时任务实现方式,其中包括Quartz和Timer。Quartz是一款开源的作业调度框架,而Timer是Java标准库中的一个类,用于执行定时任务。这两个工具都能帮助...

    Java 定时任务及作业调度 Quartz与Timer

    在Java中,有两个常用的库,Quartz和Timer,用于实现这些功能。 **Quartz** 是一个功能丰富的开源作业调度框架,支持复杂的调度策略,比如定时、周期性执行,甚至可以定义基于日期的触发器。Quartz具有可伸缩性,...

    java定时执行多任务和quartz定时执行多任务

    Java提供了一些内置的定时工具,如`java.util.Timer`和`java.util.concurrent.ScheduledExecutorService`,但它们在处理复杂定时任务时可能会显得力不从心。在这种情况下,第三方库Quartz就显得尤为出色。 1. **...

    Java定时器Timer简述.pdf

    需要注意的是,在实际开发中使用Java Timer时应当小心处理可能出现的异常,例如在解析日期时就可能会遇到ParseException。在多线程环境下,Timer类也是线程安全的,可以由多个线程共享一个Timer实例而不必担心线程...

    quartz 和 Timer实现定时功能

    `Quartz`和`Timer`都是Java中实现定时任务的工具,各有特点和适用场景。 `Timer`是Java标准库中的类,位于`java.util`包下,提供了定时任务的基本功能。`Timer`创建一个后台线程,可以安排单次或周期性的任务执行。...

    java.util.timer实现的简单定时任务

    需要注意的是,`Timer`并不是线程安全的,如果你在一个多线程环境中使用同一个Timer实例来调度任务,可能会遇到意想不到的问题。此外,当主线程结束时,Timer线程可能不会立即停止,导致程序退出前仍有未执行完的...

    java Spring OpenSymphony的Quartz定时器的时间设置

    3. **使用Trigger来启动定时器**:在Quartz中,除了定义`JobDetail`外,还需要定义`Trigger`来控制定时任务的触发规则。`Trigger`可以设置复杂的触发策略,如每天的特定时间、每周的特定天数等,极大地提高了时间...

    java是使用timer调度的例子

    在Java编程语言中,`Timer`类是Java.util包的一部分,用于执行定时任务。这个类提供了计划在将来某个特定时间运行的任务的能力。`Timer`类是线程安全的,但它的`TimerTask`子类不是,所以在多线程环境下需要注意同步...

    quartz 企业级 java

    在 Java 中,定时任务通常是通过 `java.util.Timer` 和 `java.util.TimerTask` 类来实现的,但这对于大型企业级应用来说可能不够灵活和强大。Quartz 提供了更为高级的功能,如集群支持、作业持久化、触发器(Trigger...

Global site tag (gtag.js) - Google Analytics