mysql

Quartz插件如何定时执行任务

小樊
151
2024-07-09 19:54:26
栏目: 编程语言

要让Quartz插件定时执行任务,首先需要创建一个Job类,继承自Quartz的Job接口,并实现execute方法。然后创建一个Trigger对象,指定任务的执行时间和频率。最后将Job和Trigger通过Scheduler对象进行关联,即可实现定时执行任务。

以下是一个简单的示例代码,演示如何使用Quartz插件定时执行任务:

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class MyJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("定时任务执行:" + System.currentTimeMillis());
    }

    public static void main(String[] args) {
        try {
            // 创建Scheduler实例
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

            // 创建JobDetail对象,指定Job类
            JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
                    .withIdentity("myJob")
                    .build();

            // 创建Trigger对象,指定执行时间和频率
            Trigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("myTrigger")
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(10)
                            .repeatForever())
                    .build();

            // 将Job和Trigger关联到Scheduler
            scheduler.scheduleJob(jobDetail, trigger);

            // 启动Scheduler
            scheduler.start();

            // 等待任务执行
            Thread.sleep(60000);

            // 关闭Scheduler
            scheduler.shutdown();

        } catch (SchedulerException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

以上代码创建了一个简单的定时任务,每隔10秒输出当前时间戳。通过Scheduler对象控制任务的启动和关闭。您可以根据自己的需求,修改执行时间和任务内容。

0
看了该问题的人还看了