67,515
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource" ref ="dataSource" />
<property name="applicationContextSchedulerContextKey" value="applicationContextKey"/>
<property name="configLocation" value="classpath:quartz.properties"/>
</bean>
<bean id="simpleService" class="com.sundoctor.example.service.SimpleService"></bean>
<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>
com.sundoctor.example.service.MyQuartzJobBean
</value>
</property>
<property name="jobDataAsMap">
<map>
<entry key="simpleService">
<ref bean="simpleService"/>
</entry>
</map>
</property>
</bean>
<bean id="myJob" class="com.sundoctor.example.service.MyJob"></bean>
<bean id="job" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>com.sundoctor.example.service.TestJob</value>
</property>
<property name="jobDataAsMap">
<map>
<entry key="myJob">
<ref bean="myJob"/>
</entry>
</map>
</property>
</bean>
<bean name="schedulerService" class="com.sundoctor.quartz.service.SchedulerServiceImpl">
<property name="scheduler" ref="quartzScheduler"></property>
<property name="jobDetailMap">
<map>
<entry key="myJob"><ref bean="job"/></entry>
<entry key="jobDetail"><ref bean="jobDetail"/></entry>
</map>
</property>
<property name="quartzDao" ref="quartzDao"></property>
</bean>
</beans>
public void schedule(String name, CronExpression cronExpression,String group) {
if (name == null || name.trim().equals("")) {
name = UUID.randomUUID().toString();
}else{
//在名称后添加UUID,保证名称的唯一性
name +="&"+UUID.randomUUID().toString();
}
try {
JobDetail job =(JobDetail)jobDetailMap.get("jobDetail");
scheduler.addJob(job, true);
System.out.println("jobDetail:"+job.getName());
CronTrigger cronTrigger = new CronTrigger(name, group, job.getName(),
Scheduler.DEFAULT_GROUP);
cronTrigger.setCronExpression(cronExpression);
scheduler.scheduleJob(cronTrigger);
scheduler.rescheduleJob(cronTrigger.getName(), cronTrigger.getGroup(), cronTrigger);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
}