Quartz入门

1.Quartz简介

     quartz通俗来讲是用于程序在规定的时间执行任务   如以下案例

      第一步:创建maven工程,导入spring和quartz相关依赖

<!--引入Quartz的依赖 -->
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.2.3</version>
		</dependency>
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz-jobs</artifactId>
			<version>2.2.3</version>
		</dependency>

       第二步:创建任务类

public class MyJob {
	public void run() {
		System.out.println("任务执行了----" + 
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
	}
}

      第三步:在spring配置文件中配置任务类

<bean id="myJob" class="com.test.job.MailJob"></bean>
myJob" class="com.test.job.MailJob"></bean>

       第四步:在spring配置文件中配置JobDetail

<!-- 配置jobDetail -->
	<bean id="myJobDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 用到的Job实例   目标类-->
		<property name="targetObject">
			<ref bean="myJob" />
		</property>
		<!-- Job实例中的方法 目标方法-->
		<property name="targetMethod">
			<value>run</value>
		</property>
	</bean>
myJobDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 用到的Job实例   目标类-->
		<property name="targetObject">
			<ref bean="myJob" />
		</property>
		<!-- Job实例中的方法 目标方法-->
		<property name="targetMethod">
			<value>run</value>
		</property>
	</bean>

       第五步:在spring配置文件中配置触发器

           jobDetail和cronExpression是CronTriggerFactoryBean里面的属性赋值

<!-- 配置触发器Trigger -->
	<bean id="myTrigger"
		class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail">
			<ref bean="myJobDetail" />
		</property>
		<property name="cronExpression">
			<!-- 每5秒执行一次   值为cron表达式 -->
			<value>0/5 * * * * ?</value>
		</property>
	</bean>
myTrigger"
		class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail">
			<ref bean="myJobDetail" />
		</property>
		<property name="cronExpression">
			<!-- 每5秒执行一次   值为cron表达式 -->
			<value>0/5 * * * * ?</value>
		</property>
	</bean>

       第六步:在spring配置文件中配置scheduler

<!-- 配置scheduler工厂 -->
	<bean id="scheduler"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="myTrigger" />
			</list>
		</property>
	</bean>
myTrigger" />
			</list>
		</property>
	</bean>

       第七步:加载spring配置文件,创建spring工厂  加载完成后运行后  程序将以每隔5秒钟中执行一次

public class App {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext classPathXmlApplicationContext = 
				new ClassPathXmlApplicationContext("applicationContext.xml");
	}
}

2.quartz核心概念

1、scheduler是一个计划调度器容器,容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面的每个JobDetail都会根据trigger按部就班自动去执行。
 
2、JobDetail是一个可执行的工作,它本身可能是有状态的。
 
3、Trigger触发器代表一个调度参数的配置,什么时候去调。
 
4、当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可以伴随容器启动而调度执行了。
 
5、scheduler是个容器,容器中有一个线程池,用来并行调度执行每个作业,这样可以提高容器效率。

 

 

cron 表达式的格式

uartz cron 表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wkflyj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值