返回顶部
首页 > 资讯 > 后端开发 > Python >Java spring定时任务详解
  • 424
分享到

Java spring定时任务详解

2024-04-02 19:04:59 424人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一、定时任务1、cron表达式2、cron示例3、SpringBoot整合总结一、定时任务 1、cron表达式 语法:秒 分 时 日 月 周 年 (其中“年”spring不支持

一、定时任务

1、cron表达式

语法:秒 分 时 日 月 周 年

(其中“年”spring不支持,也就是说在spring定时任务中只能设置:秒 分 时 日 月 周)

在这里插入图片描述

在这里插入图片描述

2、cron示例

在这里插入图片描述

在这里插入图片描述

3、SpringBoot整合

@EnableScheduling

@Scheduled

实例:


package com.xunqi.gulimall.seckill.scheduled;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;


@Slf4j
@Component
@EnableScheduling
public class HelloScheduled {
    
     @Scheduled(cron = "*/1 * * * * ?")
     public void hello() {
         log.info("hello...");
         try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { e.printStackTrace(); }
     }
}

定时任务默认是阻塞的线程,也就是说即使你设置成每一秒执行一次,但是方法内部的业务时间需要5秒才能执行完,也会造成定时任务每6秒才能执行一次。

当然我们可以开启异步线程:

@EnableAsync

@Async

实例:


package com.xunqi.gulimall.seckill.scheduled;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;


@Slf4j
@Component
@EnableAsync
@EnableScheduling
public class HelloScheduled {
    
     @Async
     @Scheduled(cron = "*/1 * * * * ?")
     public void hello() {
         log.info("hello...");
         try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { e.printStackTrace(); }
     }
}

这样就会开启异步线程,并且是非阻塞线程,因为每次都会开启一个线程来执行,我们可以看一下源码配置的截图,这个就是异步执行的默认配置,核心线程数是8,最大线程数是无限大,这时如果一直每秒执行一次,则会造成服务器资源耗尽。

在这里插入图片描述

当然,我们可以在配置文件中进行定时任务线程池的设定:

#核心线程数

spring.task.execution.pool.core-size=20

#最大线程数

spring.task.execution.pool.max-size=50

#队列大小

spring.task.execution.pool.queue-capacity=10000

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Java spring定时任务详解

本文链接: https://lsjlt.com/news/137376.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java spring定时任务详解
    目录一、定时任务1、cron表达式2、cron示例3、SpringBoot整合总结一、定时任务 1、cron表达式 语法:秒 分 时 日 月 周 年 (其中“年”Spring不支持...
    99+
    2024-04-02
  • Java定时任务详解
    定时任务在项目中经常会使用到,本文主要根据博主自己使用定时的经验分如下几点介绍定时任务:1、Quartz定时任务简介及Spring配置Quartz定时任务2、SchedulerFactory对定时任务进行增删改查3、总结Quartz定时任务...
    99+
    2023-05-31
    java 定时任务 ava
  • Java定时任务原理详解
    目录序章一、Scheduled1.1 使用方法1.2 源码分析二、QUARTZ2.1 使用方法2.2 源码分析序章 定时任务实现方式 当下,java编码过程中,实现定时任务的方式主要...
    99+
    2024-04-02
  • Java Spring怎么实现定时任务
    本篇内容主要讲解“Java Spring怎么实现定时任务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring怎么实现定时任务”吧!java实现定时任务Jdk自...
    99+
    2023-07-02
  • Spring Task定时任务的配置和使用详解
    记录下Spring自带的定时任务用法。spring中使用定时任务基于xml配置文件使用定时任务首先配置spring开启定时任务<beans xmlns="http://www.springframework.org/schema/be...
    99+
    2023-05-31
    spring task
  • spring执行定时任务
    定义一个任务是很简单的实现TimerTask的run方法就可以了.如下:SayHelloTask.javapackage test.timerTask;import java.util.TimerTask;public class SayH...
    99+
    2023-06-03
  • Java实现定时任务的方法详解
    目录前言定时任务是什么定时任务的有哪些是实现方式纯手写单线程循环Timer 和它的小伙伴ScheduledExecutorServiceSpring 提供的定时任务总结前言 学过定时...
    99+
    2022-11-13
    Java实现定时任务 Java定时任务
  • SpringBoot定时任务 @Scheduled详解
    博主在最近的开发中又遇到了关于定时调度的开发任务,在定时调度其实有很多的第三方平台可以接入,但是其实在SpringBoot有自带的定时任务注解@Scheduled。@Scheduled可以通过注解配置快速实现方法的定时调度,直接在方法加上@...
    99+
    2023-10-01
    spring boot java spring
  • Java-定时任务
    文章目录 补充:cron表达式基本知识方式一:使用sleep方法方式二:JDK Timer和TimerTask方式三:JDK ScheduledExecutorService方式四: Spri...
    99+
    2023-09-23
    java spring 开发语言 springboot
  • Spring 定时任务Quartz简介
    Quartz是一个开源的作业调度框架,用于在Java应用程序中实现定时任务。它可以在指定的时间点或按照一定的时间间隔触发任务的执行。...
    99+
    2023-09-15
    Spring
  • Linux下的定时任务和延时任务的详解
    at at + time at 17:23 at> touch /mnt/file{1..9} ##延迟动作 at> 键入ctrl+d ##表示发起动作 at -l | atq ##查看当前任务 ...
    99+
    2022-06-04
    Linux定时任务和延时任务 Linux定时任务 Linux延时任务
  • Android 定时任务过程详解
    在Android开发中,通过以下三种方法定时执行任务: 一、采用Handler与线程的sleep(long)方法(不建议使用,java的实现方式) 二、采用Handler的p...
    99+
    2022-06-06
    定时任务 Android
  • 详解SpringBoot定时任务功能
    目录一 背景二 动态定时任务调度三 多节点任务执行问题四 后记一 背景 项目中需要一个可以动态新增定时定时任务的功能,现在项目中使用的是xxl-job定时任务调度系统,但是经过一番对...
    99+
    2024-04-02
  • spring-boot如何通过@Scheduled配置定时任务及定时任务@Scheduled注解
    这篇文章主要介绍了spring-boot如何通过@Scheduled配置定时任务及定时任务@Scheduled注解,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。串行的定时任务...
    99+
    2023-05-30
    spring boot
  • Java Scheduled定时任务
    开启定时任务步骤流程: 在启动类添加注解;(注意:千万不要忘记!) @EnableScheduling 在具体的方法上添加定时任务注解 @Scheduled(cron = “0 0 */3 * * ”) // 每3个小时触发一次 ...
    99+
    2023-08-20
    java
  • Java使用quartz实现定时任务示例详解
    目录正文配置文件pom定时任务和触发器定时任务的业务代码正文 最近新到了一个项目,用到定时任务的地方是真滴多。 就稍微研究了一下,来做个demo。 其实定时任务使用很广泛也很方便,之...
    99+
    2022-11-13
    Java quartz定时任务 Java quartz
  • Java 定时任务技术趋势详情
    目录Java 中自带的解决方案Spring 中自带的解决方案业务幂等解决方案开源任务调度中间件企业级解决方案定时任务技术趋势简介:定时任务是每个业务常见的需求,比如每分钟扫描超时支付...
    99+
    2024-04-02
  • 如何配置Spring定时任务
    今天就跟大家聊聊有关如何配置Spring定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一步,要知道Spring这个架构,很有趣很有意思。可以做到自由插拔功能模块的效果。工程...
    99+
    2023-05-31
    spring
  • 最新Python APScheduler 定时任务详解
    目录一、基本概念1.1、 触发器:triggers1.2、作业存储器:job stores1.3、执行器 executors1.4、调度器 schedulers二、调度器详解2.1、...
    99+
    2024-04-02
  • Python Celery定时任务详细讲解
    目录前言一、Celery定时任务是什么?二、使用步骤1.代码结构2.启动定时任务3.执行结果总结前言 Celery在python中的应用除了实现异步任务(async task)外也可...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作