SpringBoot2 + Quartz(数据库持久化) 学习

持久化要先初始化Quartz数据库脚本。

1.添加使用Quartz需要的依赖

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.1</version>
        </dependency>

2.properties配置文件

spring.quartz.properties.org.quartz.scheduler.instanceName=quartzScheduler
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_
#是否集群
spring.quartz.properties.org.quartz.jobStore.isClustered=false
spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=10000
spring.quartz.properties.org.quartz.jobStore.useProperties=false
spring.quartz.properties.org.quartz.jobStore.dataSource=quartzDataSource
spring.quartz.properties.org.quartz.dataSource.quartzDataSource.driver=oracle.jdbc.driver.OracleDriver
spring.quartz.properties.org.quartz.dataSource.quartzDataSource.URL=jdbc:oracle:thin:@***.***.**.**:1521:orcl
spring.quartz.properties.org.quartz.dataSource.quartzDataSource.user=******
spring.quartz.properties.org.quartz.dataSource.quartzDataSource.password=******
spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
spring.quartz.properties.org.quartz.threadPool.threadCount=20
spring.quartz.properties.org.quartz.threadPool.threadPriority=10
spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
spring.quartz.job-store-type=jdbc
spring.quartz.autoStartup=true

3.代码部分

制定任务

@Slf4j
public class MJob1 implements Job {

    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {


        log.info(context.getJobDetail().getJobDataMap().get("data").toString());
    }
}

添加删除任务


@RestController
public class TestController {

    @Autowired
    private Scheduler scheduler;


    //新增任务
    @GetMapping("/add")
    public void add() throws SchedulerException {

        //jobDataMap 可用于传输一些业务数据
        JobDataMap jobDataMap = new JobDataMap();
        jobDataMap.put("data", "6666666666666666666666666666666666");

        JobDetail jobDetail =
                JobBuilder.newJob(MJob1.class).withIdentity("jobName1", "jobGroup1").setJobData(jobDataMap).build();

        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("triggerName1", "triggerGroup1")
                .startNow()
                .withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?"))
                .build();

        scheduler.scheduleJob(jobDetail, trigger);

    }


    //删除任务
    @GetMapping("/delete")
    public void stop() throws SchedulerException {

        //参数为jobName与jobGroup
        scheduler.deleteJob(new JobKey("jobName1", "jobGroup1"));
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值