0
点赞
收藏
分享

微信扫一扫

SpringClout 引用 xxjob定时任务

猎书客er 04-14 11:30 阅读 1
java

三种定时任务:

1:Timer定时器

Timer定时器是Java内置的定时任务工具类,可以在指定的时间间隔内执行任务。

Timer中的任务是在Timer的任务线程中按照一定的时间间隔执行的,而TimerTask则是实际定时执行的任务。Timer和TimerTask都是线程安全的,可以被多个线程同时访问。常见的使用情况是:通过定时器进行重复执行周期性任务的情况,可以按照一定的延迟时间再次执行任务。

下面是一个示例代码:

import java.util.Timer;
import java.util.TimerTask;

public class TimerExample {
    public static void main(String[] args) {
        Timer timer = new Timer();

        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                System.out.println("定时任务执行!");
            }
        };

        // 延迟1秒后开始执行任务,每隔2秒执行一次
        timer.schedule(task, 1000, 2000);
    }
}

2:ScheduledExecutorService定时任务

ScheduledExecutorService是Java提供的高级定时任务框架,可以在给定的延迟之后或定期执行一个任务。可以周期性执行任务.

下面是一个示例代码:

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduledExecutorExample {
    public static void main(String[] args) {
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

        Runnable task = new Runnable() {
            @Override
            public void run() {
                System.out.println("定时任务执行!");
            }
        };

        // 延迟1秒后开始执行任务,每隔2秒执行一次
        executor.scheduleAtFixedRate(task, 1, 2, TimeUnit.SECONDS);
    }
}

3:Quartz定时任务

Quartz是一个常用的Java定时任务框架,它提供了很多定时任务相关的功能。Quartz允许用户在固定的时间间隔内执行任务或只执行一次任务。Quartz使用特殊的cron表达式来规定调度时间,同时支持集群和集中式管理。

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

public class QuartzExample {
    public static void main(String[] args) throws SchedulerException {
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

        JobDetail job = JobBuilder.newJob(MyJob.class)
                .withIdentity("myJob", "group1")
                .build();

        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "group1")
                .startNow()
                .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(2))
                .build();

        scheduler.scheduleJob(job, trigger);
        scheduler.start();
    }

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

相关推荐

0 条评论