要配置計劃任務的SchedulerFactoryBean,可以按照以下步驟進行:
1. 導入所需的依賴:首先確保在項目的構建文件中導入了spring-context-support和quartz依賴,以使用相關的類和注解。
<dependency><groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
2. 配置SchedulerFactoryBean:在Spring配置文件中,添加一個SchedulerFactoryBean的bean定義。
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><!-- 配置數據源 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置任務調度器的屬性 -->
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">MyScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
<!-- 其他屬性配置 -->
</props>
</property>
<!-- 配置觸發器和任務 -->
<property name="triggers">
<list>
<!-- 配置觸發器和相關任務 -->
<ref bean="myTrigger" />
</list>
</property>
</bean>
3. 配置觸發器和任務:定義一個觸發器和相關的任務。
<bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="cronExpression" value="0 0/5 * * * ?" />
</bean>
<bean id="myJob" class="com.example.MyJob" />
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.example.MyJob" />
</bean>
在上述示例中,我們配置了一個Cron表達式為0 0/5 * * * ?的觸發器,它將每5分鐘觸發一次MyJob任務。
4. 編寫任務類:創建一個繼承自org.quartz.Job接口的任務類,例如com.example.MyJob。
public class MyJob implements Job {@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
// 執行任務邏輯
System.out.println("Hello, World!");
}
}
以上是配置計劃任務的基本步驟。你可以根據實際需求定制SchedulerFactoryBean的屬性、觸發器的調度規則以及任務的執行邏輯。