在spring中使用quartz

0 0-15 23 * * ?   每天23:00至23:15每分钟触发一次
0 0/5 * * * ?     每隔5分钟触发一次

bean配置的顺序:
定时器的工厂bean-->cronbean-->具体实现的bean

< bean
        
class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
        
< property  name ="triggers" >
            
< list >
                
< ref  bean ="cronExpReport"   />
            
</ list >
        
</ property >
    
</ bean >

    
<!--  每天23:00至23:15每分钟一次触发  -->
    
< bean  id ="cronExpReport"
        class
="org.springframework.scheduling.quartz.CronTriggerBean" >
        
< property  name ="jobDetail" >
            
< ref  bean ="detailBean"   />
        
</ property >
        
< property  name ="cronExpression" >
            
< value > 0 0-15 23 * * ? </ value >
        
</ property >
    
</ bean >

< bean  id ="detailBean"
        class
="org.springframework.scheduling.quartz.JobDetailBean" >
        
< property  name ="jobClass" >
            
< value > com.bo.detailBO </ value >
        
</ property >
        
< property  name ="jobDataAsMap" >
            
< map >
                 
< entry  key ="baseBO" >
                    
< ref  bean ="baseBO"   />
                
</ entry >
            
</ map >
        
</ property >
 
</ bean >

Define of cronExpression
+------------------------------------+
| Position | Meaning | Value Scope   |
+------------------------------------+
| 1        | second  | 0-59          |
+------------------------------------+
| 2        | minute  | 0-59          |
+------------------------------------+
| 3        | hour    | 0-23          |
+------------------------------------+
| 4        | day     | 1-31          |
+------------------------------------+
| 5        | month   | 1-12          |
+------------------------------------+
| 6        | week    | 1-7           |
+------------------------------------+
| 7  可选  | year    | 1970-2099     |
+------------------------------------+

http://hi.baidu.com/tonent/blog/item/894e8b525124960a0cf3e3a1.html
http://blog.csdn.net/changsure/archive/2007/03/27/1542194.aspx
http://www.xici.net/b391997/d26742282.htm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 使用 Quartz 非常简单,只需要按照以下步骤: 1. 添加依赖 在 pom.xml 文件添加 Quartz 依赖: ```xml <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> </dependency> ``` 2. 配置 QuartzSpring Boot 应用程序,可以通过 `@Bean` 注解将 Quartz 配置为 Spring Bean。在配置文件,可以使用 `quartz.properties` 文件或者直接使用 Java 代码进行配置。 以下是使用 Java 代码配置 Quartz 的示例: ```java @Configuration public class QuartzConfig { @Bean public JobDetail jobDetail() { return JobBuilder.newJob().ofType(MyJob.class).storeDurably().withIdentity("MyJob").withDescription("My Job").build(); } @Bean public Trigger trigger(JobDetail job) { return TriggerBuilder.newTrigger().forJob(job).withIdentity("MyTrigger").withDescription("My Trigger").withSchedule(CronScheduleBuilder.cronSchedule("0 0/5 * * * ?")).build(); } @Bean public Scheduler scheduler(Trigger trigger, JobDetail job, DataSource dataSource) throws SchedulerException { StdSchedulerFactory factory = new StdSchedulerFactory(); factory.initialize(); Scheduler scheduler = factory.getScheduler(); scheduler.setJobFactory(springBeanJobFactory()); scheduler.getContext().put("dataSource", dataSource); scheduler.scheduleJob(job, trigger); scheduler.start(); return scheduler; } @Bean public SpringBeanJobFactory springBeanJobFactory() { return new SpringBeanJobFactory(); } } ``` 在上面的示例,定义了一个 `MyJob` 类,该类实现了 `org.quartz.Job` 接口。然后使用 `JobBuilder` 创建 `JobDetail` 对象,并将 `MyJob` 类型指定为 Job 类型。接下来,使用 `TriggerBuilder` 创建 `Trigger` 对象,并将其与 `JobDetail` 绑定。最后,创建一个 `Scheduler` 对象,并将 `JobDetail` 和 `Trigger` 对象传递给它,并启动调度器。 3. 创建 Job 类 在上面的示例,我们定义了一个 `MyJob` 类,用于执行需要定时执行的任务。以下是 `MyJob` 类的示例代码: ```java public class MyJob implements Job { private static final Logger logger = LoggerFactory.getLogger(MyJob.class); @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { logger.info("Executing My Job ..."); // 执行需要执行的任务 } } ``` 4. 测试 现在,我们已经完成了 Quartz 的配置和 Job 类的创建。我们可以启动应用程序并等待定时任务的执行。如果一切正常,应该会看到类似以下的输出: ``` INFO c.e.q.MyJob - Executing My Job ... ``` 这就是使用 QuartzSpring Boot 执行定时任务的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值