温馨提示×

计划任务 SchedulerFactoryBean 配置

小云
329
2023-09-13 09:06:22
栏目: 编程语言

要配置计划任务的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的属性、触发器的调度规则以及任务的执行逻辑。

0