一文搞懂,java中常用的定时任务框架-单体,2024Java大厂面试经验分享

}

};

//idea会提示:使用ScheduledExecutorService代替Timer吧

Timer timer = new Timer();

System.out.println(“begin:” + new Date());

//安排指定的任务在指定的时间开始进行重复的固定延迟执行。这里是延迟5秒开始执行,之后每3秒执行一次

timer.schedule(timerTask, 5000, 3000);

timer.schedule(timerTask2, 5000, 3000);

}

}

复制代码

  • 多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行,使用ScheduledExecutorService则没有这个问题。

三、ScheduledExecutorService

==========================

  • ScheduledExecutorService也是jdk自带的定时类,可以替代Timer

package com.ljw.springboottimer.scheduledExecutorservice;

import org.apache.commons.lang3.concurrent.BasicThreadFactory;

import java.util.Date;

import java.util.concurrent.ScheduledExecutorService;

import java.util.concurrent.ScheduledThreadPoolExecutor;

import java.util.concurrent.TimeUnit;

/**

  • @Description: 2. ScheduledExecutorService代替Timer(jdk自带)

  • 多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行,

  • 使用ScheduledExecutorService则没有这个问题。

  • @Author: jianweil

  • @date: 2021/12/14 13:42

*/

public class ScheduledExecutorServiceTest {

public static void main(String[] args) throws InterruptedException {

//当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。

ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1,

new BasicThreadFactory.Builder().namingPattern(“example-schedule-pool-%d”).daemon(false).build());

System.out.println(“begin:” + new Date());

// 参数:1、任务体 2、首次执行的延时时间 3、任务执行间隔 4、间隔时间单位

//延迟5秒执行,之后每3秒执行一次

executorService.scheduleAtFixedRate(new Runnable() {

@Override

public void run() {

//do something

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java常见的定时任务开源框架包括Quartz、Spring Task、Elastic-Job和XXL-JOB等。其,Quartz是一个功能强大的开源定时任务框架,支持复杂的调度需求,但配置和使用较为复杂。Spring Task是Spring框架自带的定时任务框架,集成容易,适用于简单的调度需求。Elastic-Job是一个分布式轻量级定时任务调度框架,支持分片任务和动态扩容缩容。XXL-JOB是一个分布式定时任务调度平台,支持任务分片、任务路由、任务监控等功能。除了这些常见的定时任务框架,还有一些其他不常用框架,如EasyQuartz、Cron4j、J2eeTimer等。根据不同的业务场景和需求,可以选择适合的定时任务框架来实现任务调度。 #### 引用[.reference_title] - *1* *2* [【2.1 分布式定时任务(XXL-JOB)】一文汇总所有常见的Java定时任务框架介绍](https://blog.csdn.net/wstever/article/details/130190532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Java定时任务调度框架](https://blog.csdn.net/m0_37583655/article/details/124169458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值