1、分布式调用之 quartz 基本原理

任务调度需求分析

任务调度的实现方式有很多,如果要实现我们的调度需求,我们对这个工具有什么样的基本要求呢?

基本需求

1.可以定义触发的规则,比如基于时刻、时间间隔、表达式。
2.可以定义需要执行的任务。比如执行一个脚本或者一段代码。任务和规则是分开的。
3.集中管理配置,持久配置。不用把规则写在代码里面,可以看到所有的任务配置,方便维护。重启之后任务可以再次调度——配置文件或者配置中心。
4.支持任务的串行执行,例如执行 A 任务后再执行 B 任务再执行 C 任务。
5.支持多个任务并发执行,互不干扰(例如 ScheduledThreadPoolExecutor)。
6.有自己的调度器,可以启动、中断、停止任务。
7.容易集成到 Spring。

任务调度工具对比

在这里插入图片描述

Timer

单线程执行

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

public class TestTimerTask extends TimerTask {
   
    /**
     * 此计时器任务要执行的操作。
     */
    public void run() {
   
        Date executeTime = new Date(this.scheduledExecutionTime());
        String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        System.out.println("任务执行了:" + dateStr);
    }
}



public class TestTimer {
   
    public static void main(String[] args) {
   
        Timer timer = new Timer();
        TimerTask task = new TestTimerTask();
        timer.schedule(task, 5000L, 1000L);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值