Java Spring分别实现定时任务方法

Java Spring 是一个开源的全栈轻量级应用框架,可以通过 Spring 框架实现定时任务即在指定时间轮询执行某个任务或在固定时间执行某个任务。下面详细介绍一下 Java Spring 分别实现定时任务的方法:

1. Spring Schedule 注解方式

这种方法主要使用在方法上添加注解,从而使得方法在特定的时间点或者时间间隔执行。

在Spring项目中需要配置@EnableScheduling注解后才能使用。通常是一个被@ComponentScan注解的配置类。

示例1:

@Component
public class ScheduleTask {

    @Scheduled(cron = "0 * * * * ?") // 每分钟执行一次
    public void minuteJob() {
        System.out.println("每分钟定时任务执行");
    }
}

示例2:

@Slf4j
@Component
public class ScheduleTask {

    /**
     * 固定间隔任务
     */
    @Scheduled(fixedRate = 5000)
    public void fixedRateJob() {
        log.info("固定间隔任务执行");
    }

    /**
     * 固定延迟任务
     */
    @Scheduled(fixedDelay = 5000)
    public void fixedDelayJob() {
        log.info("固定延迟任务执行");
    }
}

2. Spring Quartz 组合方式

Quartz 是一个高级任务调度框架,它与 Spring 集成后,提供了一个基于 XML 的配置文件,可以无缝的 与Spring进行整合。

下面是实现步骤:

  1. 引入相关依赖,具体可以参考 Maven 依赖中心。其中,org.quartz-scheduler 为 Quartz 核心依赖,org.springframework:spring-context-support 为 Spring 扩展支持包,其它依赖都为为 Spring 集成 Quartz 所需的依赖。

  2. 在配置文件中,插入 quartz 配置元素 scheduler,并配置 Quartz 自带的 SimpleTrigger 简单触发器相关属性。

  3. 初始化时启动任务定时器。

示例:

@Configuration
public class QuartzJobConfig {

    private static final int MINUTE = 60; // 单位秒
    private static final int INTERVAL = 3 * MINUTE; // 间隔时间为3分钟

    /**
     * 配置 Task 任务,并注册到bean中,交由 Spring 容器管理
     */
    @Bean
    public JobDetail taskJobDetail() {
        return JobBuilder.newJob(TaskJob.class)
                .withIdentity("taskJob", "taskJobGroup")
                .storeDurably().build();
    }

    /**
     * 触发器 Trigger,定时任务(2)的触发条件设置
     */
    @Bean
    public Trigger taskTrigger() {
        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
                .withIntervalInSeconds(INTERVAL) // 间隔时间
                .repeatForever();
        return TriggerBuilder.newTrigger()
                .forJob(taskJobDetail())
                .withIdentity("taskTrigger", "taskTriggerGroup")
                .withSchedule(scheduleBuilder)
                .build();
    }

    @Bean
    public SchedulerFactoryBean schedulerFactoryBean() {
        SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
        schedulerFactoryBean.setJobDetails(taskJobDetail());
        schedulerFactoryBean.setTriggers(taskTrigger());
        return schedulerFactoryBean;
    }
}

以上便是 Java Spring 分别实现定时任务的方法。通过选择不同的方式,可以根据实际场景需求快速实现定时任务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Spring分别实现定时任务方法 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • 解析Java的Hibernate框架中的持久化类和映射文件

    解析Java的Hibernate框架中的持久化类和映射文件 Hibernate是一个Java平台的ORM框架,可以方便地进行对象和关系的映射,从而实现持久化操作。持久化类和映射文件是Hibernate框架中实现持久化操作的核心要素。本文将详细讲解解析Java的Hibernate框架中的持久化类和映射文件的完整攻略。 持久化类 持久化类是Hibernate框架…

    Java 2023年5月31日
    00
  • MyBatis @Select注解介绍:基本用法与动态SQL拼写方式

    下面我来详细讲解”MyBatis @Select注解介绍:基本用法与动态SQL拼写方式”。 什么是@Select注解? @Select注解是MyBatis框架中用于查询的注解之一,用于执行查询操作的SQL语句。在使用MyBatis进行数据库操作时,我们可以使用@Select注解来替代在XML文件中编写SQL语句的方式,这样可以使得代码更加简洁和清晰。 @Se…

    Java 2023年5月20日
    00
  • 使用axios发送post请求,将JSON数据改为form类型的示例

    当我们使用axios发送POST请求时,常见的请求头的Content-Type类型有两种,一种是JSON类型,一种是form数据类型。 对于form数据类型,我们需要将JSON格式数据转成urlencoded形式,才能够被服务器正确解析。下面是详细攻略: 1. 设置Content-Type为application/x-www-form-urlencoded …

    Java 2023年5月26日
    00
  • Java中List.contains(Object object)方法使用

    Java中的List.contains(Object object)方法用于判断List容器中是否包含指定的对象。这个方法返回一个boolean类型,当包含指定对象时返回true,否则返回false。下面就是使用List.contains()方法的完整攻略: 方法签名 下面是List.contains(Object object)方法的定义签名(注意,该方法…

    Java 2023年5月26日
    00
  • Java Mybatis中的 ${ } 和 #{ }的区别使用详解

    Java Mybatis中的 ${ } 和 #{ }的区别使用详解 1. 介绍 Java Mybatis 是一款优秀的数据持久化框架。在使用 Mybatis 进行 SQL 语句编写时,会用到两种不同的参数注入方式: ${ } 和 #{ } 。这两种方式虽然看似相似,但实际上有很大的区别。本文将详细介绍 ${ } 和 #{ } 的区别,以便我们在实际开发中做出…

    Java 2023年5月20日
    00
  • select下拉菜单实现二级联动效果

    要使用select下拉菜单实现二级联动效果,需要以下步骤: 创建HTML结构,包括两个select元素,分别用于显示一级和二级选项,以及相应的label元素。 示例代码: <label for="province">选择省份:</label> <select name="province"…

    Java 2023年6月15日
    00
  • 深入了解Java SpringBoot自动装配原理

    Java Spring Boot是一个非常流行的开发框架,它可以帮助开发者快速构建Web应用程序。其中一个重要的特性是自动装配,它可以帮助开发者自动配置应用程序的依赖项,从而简化应用程序的开发和部署。以下是深入了解Java Spring Boot自动装配原理的完整攻略: 自动装配原理 Java Spring Boot的自动装配原理基于Spring框架的依赖注…

    Java 2023年5月15日
    00
  • java使用URLDecoder和URLEncoder对中文字符进行编码和解码

    下面是“java使用URLDecoder和URLEncoder对中文字符进行编码和解码”的完整攻略。 什么是URL编码和解码? 在URL中,一些字符可能具有特殊含义。例如,空格字符被视为“+”号,或者被编码为“%20”。URL编码就是将不安全的字符转换为%后跟两个十六进制数的形式。而URL解码则是将这些转义字符还原为它们本来的字符形式。 java中使用URL…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部