`

quartz helloworld例子

阅读更多

1.新建一个job,运行的内容就主要就在job中

package com.fhqiwcw.quartz.train;

import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class HelloWorldJob implements Job {

	@Override
	public void execute(JobExecutionContext context)
			throws JobExecutionException {
		JobDataMap jobDataMap = context.getMergedJobDataMap();
		System.out.println("Hello word!");
		System.out.println("\t" + jobDataMap.getString("message"));
		System.out.println("\t下次运行时间" + context.getNextFireTime());
	}

}
 

2.测试运行

 

package com.fhqiwcw.quartz.train;

import java.text.ParseException;

import org.quartz.CronTrigger;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;

public class MyMain {
	public static void main(String[] args) throws SchedulerException, ParseException {
		// 实例化一个Schedule,用于任务的调度
		Scheduler schedule = new StdSchedulerFactory().getScheduler();
		schedule.start();

		// jobDetal job的详细作息,包括job名,要运行job的类
		JobDetail jobDetail = new JobDetail("helloworldjob", HelloWorldJob.class);
		JobDataMap map = jobDetail.getJobDataMap();
		map.put("message", "this is helloworld jobdetail");
		jobDetail.setJobDataMap(map);

		// 实例化触发器
		// 简单的触发器,功能比较单一
		//Trigger trigger = new SimpleTrigger("helloworldtriger", 10, 1000);
		// CronTrigger 接受cron表达式的触发器,功能很强大
		String cronExp = "0/5 * * * * ?";
		Trigger trigger = new CronTrigger("helloworldtrigger", Scheduler.DEFAULT_GROUP,cronExp);

		schedule.scheduleJob(jobDetail, trigger);
	}
}

 3.cron表达式简介:

Cron表达式的组件

位置

含义

允许的特殊字符

1

秒( 0-59

, - * /

2

分( 0-59

, - * /

3

小时( 0-23

, - * /

4

日期( 1-31

, - * / ? L W C

5

月( JAN-DEC 1-12

, - * /

6

星期( SUN-SAT 1-7

, - * / ? L C #

7

年(可选, 1970-2099 ),

若为空,表示全部时间范围

, - * /

每一个组件接受一个指定范围的值,如秒和分接受0~59而日期则接受1~31。对于星期或月,你可以使用数字例如星期天数的1~7,或者文本SUN-SAT。

每一个部分也接受一组给定的特殊字符,例如当把"*"放在小时部分时表示每个小时,在星期部分使用一个表达式例如6L表示每个月最后一个星期五。表12-2说明了Cron的通配符和特殊字符。

Cron表达式的通配符和特殊字符

特殊字符

说明

*

任意值。这个特殊字符可以被使用在表达式的任何域,

表示不应该检查该值。因此,我们的 Cron 表达式可以在

1970 2099 年的任意一天,任意月份和星期中的任意一天触发

?

无特定值。此特殊字符通常和其他指定的值一起使用,

表示必须显示该值但不能检查

-

范围。例如小时部分 10-12 表示 10:00 11:00 12:00

,

列分隔符。此特殊字符可以让你指定一系列的值,

例如在星期域中指定 MON TUE WED

/

增量。此特殊字符表示一个值的增量,例如 0/1 表示从 0 开始,

每次增加 1 min

L

L 是英文单词 Last 的缩写。它在日期和星期域中表示有一点不同,

挡在日期域中使用时,表示这个月的最后一天( 3 31

2 29 日等)。当使用在星期域时,它永远是同一个值: 7 ——

星期六。当你希望使用星期中某一天时, L 字符非常有用。例如,

星期域中 6L 表示每个月的最后一个星期五

W

W 只可以用在月域部分的天字段,指定临近一周(星期一到星期五)

给该月的既定日期。设置值 7W ,触发器若第 7 此触发在一个星期六,

那么它将在第六天触发。若第七天是星期日,触发器将在星期一触发,

即第八天。注意触发器由于周六是第一天,实际触发发生在第三天

#

此特殊字符可使用在星期域中,表示该月的第几个星期。

例如 1#2 表示每个月的第一个星期一

C

日历值。它可以使用在日期和星期域中。日期值是根据一个

给定的日历计算出来的。在日期域中给定一个 20C 将在 20

(日历包括 20 日)或 20 日后日历中包含的第一天(不包括 20 日)

激活触发器。例如在一个星期域中使用 6C 表示日历中星期五

(日历包括星期五)或者第一天(日历不包括星期五)


分享到:
评论

相关推荐

    quartz的helloworld

    这个"quartz的helloworld"示例旨在教你如何在Tomcat服务器上配置和使用Quartz来定期执行一个简单的任务——每五秒钟打印出"Hello, World!"。 首先,Quartz的核心概念包括Job(工作)和Trigger(触发器)。Job是实际...

    quartz的helloworld例子和所需的jar

    这是quartz定时器的一个helloworld例子,主要用到的是其中的quartz需要的jar,在lib文件夹中,需要学习的quartz的,可以下载我上传的quartz文档,里面有详细介绍quartz怎么使用。

    一个简单的quartz版helloWorld示例演示

    在这个例子中,Job类可能会有一个名为`execute`的方法,该方法会在每次触发时被调用,并打印出"helloWorld"到控制台。Job类需要实现Quartz的`org.quartz.Job`接口,并且通常会自定义一个实现类。 2. **Trigger**:...

    一个简单的quartz、spring集成版helloWorld示例演示

    在这个"一个简单的quartz、spring集成版helloWorld示例演示"中,我们将探讨如何将这两个框架结合使用,实现一个基础的定时任务。 首先,Quartz的集成通常涉及到Spring的`SchedulerFactoryBean`,这个bean负责管理和...

    spring-boot-helloworld.zip

    总之,"spring-boot-helloworld.zip" 压缩包提供了一个 Spring Boot 入门的例子,通过这个例子,你可以学习到如何创建、配置和运行一个基本的 Spring Boot 应用,并理解其核心概念。这将是你进一步探索 Spring Boot ...

    一个简单的quartz动态定时示例演示

    这表明我们的Job类会包含一个`execute`方法,该方法会在满足特定Trigger条件时(即每分钟的6秒、18秒、30秒等)被调用,打印出"helloWorld"。 为了实现这个定时任务,我们需要以下步骤: 1. **定义Job**:创建一个...

    Quartz的一个简单实例

    JobDetail jobDetail = new JobDetail("job1", "group1", HelloWorld.class); // 创建一个触发器,并命名为 ‘trigger1’,将此触发器设置在 ‘job1’ 上 SimpleTrigger simpleTrigger = new SimpleTrigger(...

    3. spring版 timer HelloWorld

    Spring版 timer HelloWorld”这一主题,它是Spring框架与Java定时任务处理的一个简单示例。通过这个实例,我们可以了解如何在Spring应用中使用Timer进行定时任务的执行。 首先,让我们明确什么是Timer。在Java中,...

    Quartz一个开源作业调度框架

    首先,定义一个实现 `Job` 接口的类,如 `HelloJob`,它会在执行时输出 "Hello World!": ```java import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; ...

    Spring Boot Hello World 入门源代码,直接返回一个http的JSON的输出

    在这个例子中,`/hello` 是请求的路径,当用户访问 `/hello` 时,服务器将返回一个 JSON 对象,内容是 `{"message":"Hello, Spring Boot!"}`。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,...

    Quartz例子

    <job-class>Helloworld</job-class> </job-detail> <trigger> <cron> <!-- trigger 的名字 --> <name>test-trigger</name> <group>DEFAULT</group> <!-- trigger对应的job的相关信息 -->...

    Quartz作业调度框架

    在Quartz中,一个简单的“Hello,World”例子可以帮助新手用户快速上手。用户通过调度QuartzScanDirectoryJob等示例作业来掌握Quartz作业调度的基本概念。通过声明式部署Job,Quartz支持更加灵活的作业调度方式。 ...

    Java的作业调度类库Quartz基本使用指南

    System.out.println("Hello World! - " + new Date()); // 具体业务逻辑... } } // 调度Job public class quartzTest { public static void main(String[] args) throws SchedulerException, ParseException { ...

    springboot入门例子

    例如,`@GetMapping("/hello")` 可以用来处理 GET 请求,返回 "Hello, World!"。 5. **后台逻辑**:`@Service` 注解用于标记业务逻辑层的类,这些类通常会包含一些处理数据和业务规则的方法。你可以使用 `@...

    spring boot restful服务小例子

    它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地创建出稳定且生产级别的基于 Spring 的应用。 在“spring boot restful服务小例子”中,我们重点讨论的是如何...

    spring-boot示例项目

    该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户...

    springboot的简单入门

    4. **Hello World示例**: 压缩包中的`springboot-hello`可能是一个简单的"Hello, World!"应用程序。通常,它会包含一个`Application`类,标记为`@SpringBootApplication`,该注解集成了`@Configuration`,`@...

    Spring笔记1

    在示例中,HelloWorldController使用@RestController和@RequestMapping注解来定义一个HTTP端点,该端点返回"hello world!"的JSON响应。这种方式展示了Spring如何通过注解驱动的编程,减少手动配置,提高开发效率。 ...

    spring3.x企业应用开发实战源代码

    2. **Chapter 2**:可能是关于Spring的环境搭建和基本概念的介绍,源代码可能包含简单的Hello World程序,演示了如何创建一个Spring项目,配置Spring环境,并执行一个基本的Spring应用。 3. **Chapter 7**:通常...

Global site tag (gtag.js) - Google Analytics